最最常用的 100 個 Java 類
大部分的 Java 軟件開發(fā)都會使用到各種不同的庫。近日我們從一萬個開源的 Java 項(xiàng)目中進(jìn)行分析,從中提取出最常用的 Java 類,這些類有來自于 Java 的標(biāo)準(zhǔn)庫,也有第三方庫。每個類在同一個項(xiàng)目中只計(jì)數(shù)一次,下面的列表中顯示前 100 名的類。
以下列表中按使用最多的類進(jìn)行排序,第三個數(shù)值表示 10000 個項(xiàng)目里使用到該類的項(xiàng)目數(shù),而完整的列表請看 here.
java.util.ArrayList (6958)
java.io.IOException (6866)
java.util.List (6784)
java.util.HashMap (5590)
java.util.Map (5413)
java.io.File (5097)
java.io.InputStream (4234)
java.util.Set (3915)
java.util.Arrays (3884)
java.util.Iterator (3856)
java.util.Collections (3643)
java.util.Date (3461)
java.util.HashSet (3278)
java.io.BufferedReader (3257)
java.util.Collection (3192)
java.net.URL (3168)
java.io.FileInputStream (3044)
java.io.InputStreamReader (3023)
org.junit.Test (3008)
java.io.FileOutputStream (2843)
java.io.FileNotFoundException (2669)
java.io.OutputStream (2563)
java.util.regex.Pattern (2469)
java.io.Serializable (2437)
java.util.LinkedList (2372)
java.text.SimpleDateFormat (2245)
java.util.Properties (2190)
java.util.Random (2171)
java.lang.reflect.Method (2141)
java.io.ByteArrayOutputStream (2112)
java.util.regex.Matcher (2012)
android.os.Bundle (2007)
java.util.logging.Logger (1999)
java.io.UnsupportedEncodingException (1968)
org.junit.Before (1920)
java.util.Comparator (1896)
java.io.ByteArrayInputStream (1868)
java.io.PrintWriter (1862)
java.util.Calendar (1854)
android.app.Activity (1843)
java.net.MalformedURLException (1828)
android.content.Context (1780)
android.view.View (1731)
java.util.Locale (1719)
java.util.Enumeration (1709)
java.util.Map.Entry (1705)
java.io.FileWriter (1677)
java.io.FileReader (1651)
android.util.Log (1614)
android.content.Intent (1601)
java.lang.reflect.InvocationTargetException (1594)
java.util.logging.Level (1557)
java.lang.reflect.Field (1499)
java.io.StringWriter (1499)
android.widget.TextView (1442)
java.util.LinkedHashMap (1409)
java.io.Reader (1390)
java.net.URI (1377)
java.io.Writer (1339)
java.text.ParseException (1318)
junit.framework.TestCase (1318)
java.io.OutputStreamWriter (1295)
java.io.StringReader (1279)
java.io.BufferedWriter (1265)
java.util.Vector (1254)
java.util.StringTokenizer (1251)
java.text.DateFormat (1246)
java.util.concurrent.TimeUnit (1237)
java.io.BufferedInputStream (1235)
java.util.TreeMap (1227)
org.xml.sax.SAXException (1218)
javax.servlet.http.HttpServletRequest (1175)
java.io.PrintStream (1168)
java.util.TreeSet (1160)
android.widget.Toast (1157)
java.util.Hashtable (1154)
java.lang.reflect.Constructor (1139)
java.net.URLEncoder (1134)
java.security.NoSuchAlgorithmException (1134)
org.w3c.dom.Document (1130)
android.widget.Button (1129)
org.junit.After (1128)
javax.servlet.http.HttpServletResponse (1109)
java.awt.Color (1099)
java.net.URISyntaxException (1085)
javax.servlet.ServletException (1081)
javax.xml.parsers.DocumentBuilderFactory (1076)
java.lang.annotation.Retention (1075)
java.security.MessageDigest (1072)
java.util.concurrent.Executors (1062)
java.net.UnknownHostException (1057)
org.slf4j.Logger (1054)
java.sql.SQLException (1043)
org.slf4j.LoggerFactory (1042)
java.util.UUID (1040)
java.net.InetAddress (1026)
junit.framework.Assert (1011)
android.view.ViewGroup (1005)
java.util.concurrent.ConcurrentHashMap (1001)
java.awt.event.ActionEvent (995)
上表中,一點(diǎn)也不奇怪,有 85 個是 Java 的標(biāo)準(zhǔn)庫,因?yàn)檫@是語言本身的一部分,涉及 util、lang 和 io 包。
下圖是包使用的分布圖:
該調(diào)查是分析源碼文件中的 import 語句,因此你并沒有發(fā)現(xiàn)大量的 String, Math, StringBuilder 等類,所以沒必要對它們進(jìn)行排除。
via: programcreek
相關(guān)文章:
1. Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考2. Docker 部署 Prometheus的安裝詳細(xì)教程3. Ajax引擎 ajax請求步驟詳細(xì)代碼4. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟5. JavaScript Tab菜單實(shí)現(xiàn)過程解析6. ThinkPHP5 通過ajax插入圖片并實(shí)時顯示(完整代碼)7. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析8. 解析使用useDark(),發(fā)現(xiàn)transition 動畫失效9. 存儲于xml中需要的HTML轉(zhuǎn)義代碼10. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁
