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

下图是包使用的分布图:

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

最最常用的 100 个 Java 类(转)的更多相关文章

  1. Java最最常用的100个类排序(非官方)

    下面这句话是引用"大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库, ...

  2. [原创]Android系统中常用JAVA类源码浅析之HashMap

    由于是浅析,所以我只分析常用的接口,注意是Android系统中的JAVA类,可能和JDK的源码有区别. 首先从构造函数开始, /** * Min capacity (other than zero) ...

  3. java 常用的验证方法帮助类

    import java.text.ParseException; import java.util.Collection; import java.util.Map; /** * 常用的验证方法帮助类 ...

  4. 常用的16个Java实用工具类,Java开发人员请收藏!

    在Java中,实用程序类是一个定义一组执行常用功能的方法的类.这篇文章展示了最常用的Java实用程序类及其最常用的方法.类列表及其方法列表都按流行度排序.该数据基于GitHub随机选择的50,000个 ...

  5. Java初学者作业——编写 Java 程序,定义 Java 类 (Point) 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台。

    返回本章节 返回作业目录 需求说明: 编写 Java 程序,定义 Java 类 Point 用来表示坐标,坐标范围在(0,0)到(100,100)以内,并显示合法的坐标在控制台. 实现思路: 定义 P ...

  6. Thymeleaf常用语法:模板文件中表达式调用Java类的静态方法

    在模板文件的表达式中,可以使用“${T(全限定类名).方法名(参数)}”这种格式来调用Java类的静态方法. 开发环境:IntelliJ IDEA 2019.2.2Spring Boot版本:2.1. ...

  7. Eclipse/MyEclipse 最最常用的快捷键

    F 键类 F2 显示详细信息 F3 跳到声明或定义的地方 Ctrl + 键类 Ctrl+1 快速修复 ( 最经典的快捷键 , 就不用多说了 ) Ctrl+D 删除当前行 Ctrl+E 快速显示当前 E ...

  8. Java类WebServer及中间件拿webshell方法总结

    0.序 原文名称:Tomcat.Weblogic.JBoss.GlassFish.Resin.Websphere弱口令及拿webshell方法总结 原文from:http://www.hack80.c ...

  9. java类生命周期详细解析

    (一)详解java类的生命周期 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前 ...

随机推荐

  1. 怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版

    转自:怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版 下载并安装ESET NOD32 Antivirus 4的Linux桌面版,根据下面的步骤一步一步的来: I.  下 ...

  2. 一个打砖块的小游戏1.0 KILL THE BLOCKS !

    /******************************************** * 程序名称:MR.DUAN 的打砖块(KILL THE BLOCKS !) * 作 者:WindAutum ...

  3. 搭建maven项目简介

    http://jingyan.baidu.com/album/9f7e7ec0b714ae6f29155465.html?picindex=1 Maven学习 (一) 搭建Maven环境 http:/ ...

  4. Linux shell 脚本中”2>&1″的含义解释

    脚本是:nohup /mnt/Nand3/H2000G  >/dev/null  2>&1 &   对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是 ...

  5. MySQL REPLACE替换输出

    原输出: [root@ARPGTest ~]# mysql -p`cat /data/save/mysql_root` pro_manager -e'select erlang_script,sql_ ...

  6. Objective-C学习篇07—NSArray与NSMutableArray

    大纲 NSArray NSMutableArray 快速枚举 NSArray NSArray是一个静态数组,也就是一个不可变数组,一旦创建以后,就不能进行添加,删除或者修改其中的元素.NSArray继 ...

  7. MYSQL Model报错:指定的存储区提供程序在配置中找不到 的解决

    开了项目发现没装mysql及mysql connector/.net.下了个最新版本,结果打开vs,进入模型edmx页面就出了这个问题. 刚开始以为是ProviderManifestToken版本的问 ...

  8. 武汉科技大学ACM:1010: 零起点学算法27——判断是否直角三角形

    Problem Description 输入三个整数,分别代表三角形的三条边长度,判断能否构成直角三角形 Input 输入3个整数a,b,c(多组数据,-5000000<a,b,c<500 ...

  9. uva 12207 - That is Your Queue

    #include <cstdio> #include <iostream> #include <deque> using namespace std; int ma ...

  10. UVa12304

    基础题,注意精度和旋转方向. #include <iostream> #include <math.h> #include <vector> #include &l ...