大部分的 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. img的onerror事件

    使用场景 其实on error使用上是比较简单的. 当我们网站上出现了无效图片,而我们希望用友好的方式告诉用户,而不是显示红叉叉. w3c上解释的 定义和用法: onerror 事件会在文档或图像加载 ...

  2. 小学生之Map集合框架的使用

    Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false Map中包含了一个keySet()方法, ...

  3. CSS简要内容

    1. 简介 用于布局与美化网页(颜色,字体) CSS语言是一种标记语言,不需编译,可直接由浏览器执行 大小写不敏感 CSS定义由选择符.属性.属性取值组成 格式:selector{property:v ...

  4. 使用FileResult返回浏览器文件及乱码问题解决

    一.向客户端发送文件方法 Asp.Net 中返回文件方法 public void TxtFile(string filename) { //html文件 string path = @"E: ...

  5. 批量执行插入的sql和自动补零

    DECLARE @invoice_no int SET @invoice_no=3 WHILE @invoice_no<=100 --需要插入的次数 BEGIN --此处需要执行的插入sql文 ...

  6. CactiEZ 中文版V10.1安装使用以及139邮箱短信报警设置

    说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合Cacti等相关软件,重新编译而成的一个操作系统!   说明:CactiEZ中文版V10.1是基于CentOS 6.0系统,整合 ...

  7. iOS中枚举定义的三种方式

    最简单的方式 typedef enum{ num1 = 0, num2 = 1, num3 = 2 }num; 同时我们还可以使用NS_ENUM的方式定义枚举 typedef NS_ENUM (NSI ...

  8. java事件处理5(窗口,窗口坐监视器

    WindowEvent窗口事件 添加接口 addWindowListener(WindowEvent e) 接口有七个方法 public void windowActivated(WindowEven ...

  9. 你好,C++(28)用空间换时间 5.2 内联函数 5.3 重载函数

    5.2  内联函数 通过5.1节的学习我们知道,系统为了实现函数调用会做很多额外的幕后工作:保存现场.对参数进行赋值.恢复现场等等.如果函数在程序内被多次调用,且其本身比较短小,可以很快执行完毕,那么 ...

  10. javascript中的screen对象

    screen对象通常包含下列属性(许多浏览器都加入了自己的属性): 1.availHeight :  窗口可以使用的屏幕的高度(以像素计)其中包括操作系统元素(如window工具栏)需要的空间. 2. ...