一切福田,不離方寸,從心而覓,感無不通。

最最常用的 100 个 Java 类

大部分的 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

from:http://www.oschina.net/news/55726/top-100-classes-used-in-java-projects