最最常用的 100 个 Java 类

oschina
 oschina
发布于 2014年09月30日
收藏 397

大部分的 Java 软件开发都会使用到各种不同的库。近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库。每个类在同一个项目中只计数一次,下面的列表中显示前 100 名的类。

以下列表中按使用最多的类进行排序,第三个数值表示 10000 个项目里使用到该类的项目数,而完整的列表请看 here.

  1. java.util.ArrayList (6958)

  2. java.io.IOException (6866)

  3. java.util.List (6784)

  4. java.util.HashMap (5590)

  5. java.util.Map (5413)

  6. java.io.File (5097)

  7. java.io.InputStream (4234)

  8. java.util.Set (3915)

  9. java.util.Arrays (3884)

  10. java.util.Iterator (3856)

  11. java.util.Collections (3643)

  12. java.util.Date (3461)

  13. java.util.HashSet (3278)

  14. java.io.BufferedReader (3257)

  15. java.util.Collection (3192)

  16. java.net.URL (3168)

  17. java.io.FileInputStream (3044)

  18. java.io.InputStreamReader (3023)

  19. org.junit.Test (3008)

  20. java.io.FileOutputStream (2843)

  21. java.io.FileNotFoundException (2669)

  22. java.io.OutputStream (2563)

  23. java.util.regex.Pattern (2469)

  24. java.io.Serializable (2437)

  25. java.util.LinkedList (2372)

  26. java.text.SimpleDateFormat (2245)

  27. java.util.Properties (2190)

  28. java.util.Random (2171)

  29. java.lang.reflect.Method (2141)

  30. java.io.ByteArrayOutputStream (2112)

  31. java.util.regex.Matcher (2012)

  32. android.os.Bundle (2007)

  33. java.util.logging.Logger (1999)

  34. java.io.UnsupportedEncodingException (1968)

  35. org.junit.Before (1920)

  36. java.util.Comparator (1896)

  37. java.io.ByteArrayInputStream (1868)

  38. java.io.PrintWriter (1862)

  39. java.util.Calendar (1854)

  40. android.app.Activity (1843)

  41. java.net.MalformedURLException (1828)

  42. android.content.Context (1780)

  43. android.view.View (1731)

  44. java.util.Locale (1719)

  45. java.util.Enumeration (1709)

  46. java.util.Map.Entry (1705)

  47. java.io.FileWriter (1677)

  48. java.io.FileReader (1651)

  49. android.util.Log (1614)

  50. android.content.Intent (1601)

  51. java.lang.reflect.InvocationTargetException (1594)

  52. java.util.logging.Level (1557)

  53. java.lang.reflect.Field (1499)

  54. java.io.StringWriter (1499)

  55. android.widget.TextView (1442)

  56. java.util.LinkedHashMap (1409)

  57. java.io.Reader (1390)

  58. java.net.URI (1377)

  59. java.io.Writer (1339)

  60. java.text.ParseException (1318)

  61. junit.framework.TestCase (1318)

  62. java.io.OutputStreamWriter (1295)

  63. java.io.StringReader (1279)

  64. java.io.BufferedWriter (1265)

  65. java.util.Vector (1254)

  66. java.util.StringTokenizer (1251)

  67. java.text.DateFormat (1246)

  68. java.util.concurrent.TimeUnit (1237)

  69. java.io.BufferedInputStream (1235)

  70. java.util.TreeMap (1227)

  71. org.xml.sax.SAXException (1218)

  72. javax.servlet.http.HttpServletRequest (1175)

  73. java.io.PrintStream (1168)

  74. java.util.TreeSet (1160)

  75. android.widget.Toast (1157)

  76. java.util.Hashtable (1154)

  77. java.lang.reflect.Constructor (1139)

  78. java.net.URLEncoder (1134)

  79. java.security.NoSuchAlgorithmException (1134)

  80. org.w3c.dom.Document (1130)

  81. android.widget.Button (1129)

  82. org.junit.After (1128)

  83. javax.servlet.http.HttpServletResponse (1109)

  84. java.awt.Color (1099)

  85. java.net.URISyntaxException (1085)

  86. javax.servlet.ServletException (1081)

  87. javax.xml.parsers.DocumentBuilderFactory (1076)

  88. java.lang.annotation.Retention (1075)

  89. java.security.MessageDigest (1072)

  90. java.util.concurrent.Executors (1062)

  91. java.net.UnknownHostException (1057)

  92. org.slf4j.Logger (1054)

  93. java.sql.SQLException (1043)

  94. org.slf4j.LoggerFactory (1042)

  95. java.util.UUID (1040)

  96. java.net.InetAddress (1026)

  97. junit.framework.Assert (1011)

  98. android.view.ViewGroup (1005)

  99. java.util.concurrent.ConcurrentHashMap (1001)

  100. java.awt.event.ActionEvent (995)

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

下图是包使用的分布图:

popular-java-classes

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

via programcreek

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:最最常用的 100 个 Java 类
加载中

最新评论(41

onewheatmaxm
onewheatmaxm

引用来自“修改个人信息”的评论

没看到String,打死也不信这个排行
就是嘛,怎么没看到String
ApacheCN_飞龙
ApacheCN_飞龙
开啥玩笑。。java里面最常用的类不应该是java.lang.String嘛。。。
Crazy罗小杰
Crazy罗小杰
我插,这个都有。
你我的宿命
你我的宿命
我以为是工具类,原来是Java类的使用排行榜
我就是来打瓶酱油
该调查是分析源码文件中的 import 语句,因此你并没有发现大量的 String, Math, StringBuilder 等类,所以没必要对它们进行排除。

String等是不需要引入的。
火眼金睛容嬷嬷
火眼金睛容嬷嬷

引用来自“袁国涛”的评论

就是,就是,String在第一位是当之无愧的。数量绝对是10000.不相信哪个项目可以没有它。当然,泛型之后可能不好统计了。

引用来自“欣水寓言”的评论

显然文章没看完
显然,你中文水平很差。
欣水寓言
欣水寓言

引用来自“袁国涛”的评论

就是,就是,String在第一位是当之无愧的。数量绝对是10000.不相信哪个项目可以没有它。当然,泛型之后可能不好统计了。
显然文章没看完
JackTwain
JackTwain
Mark,记录
z
zyguan
IOException:throw我吧!catch我吧!噢哈哈...
就怕程序耍流氓
就怕程序耍流氓
居然没有Object这个类
返回顶部
顶部