聊聊java最常用的类

大部分的 Java 软件开发都会使用到各种不同的库。近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库。每个类在同一个项目中只计数一次,下面的列表中显示前 100 名的类。
以下列表中按使用最多的类进行排序,第三个数值表示 10000 个项目里使用到该类的项目数,而完整的列表请看 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)

上表中,一点也不奇怪,有 85 个是 Java 的标准库,因为这是语言本身的一部分,涉及 util、lang 和 io 包。
下图是包使用的分布图:


popular-java-classes

该调查是分析源码文件中的 import 语句,因此你并没有发现大量的 String, Math, StringBuilder 等类,所以没必要对它们进行排除。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,937评论 2 8
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,333评论 25 708
  • 背景 10月2号凌晨12:08收到报警,所有请求失败,处于完全不可用状态 应用服务器共四台resin,resin之...
    AGIHunt阅读 22,113评论 6 16
  • 我想我有一个故事,或者一本现实的小说 从哑巴挂起寝室三面窗户的帘幕开始说起 仿佛,白天和黑夜没有区别,人总在嗜睡 ...
    芳桥日记阅读 288评论 0 1
  • 毕业快一年了,又到了每年的毕业季。看到朋友圈各路学弟学妹晒出的毕业照,各种欣慰和感慨。想想我的大学,四级考了n次才...
    钱萧萧阅读 1,214评论 0 5