大部分的 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 包。
下图是包使用的分布图:
该调查是分析源码文件中的 import 语句,因此你并没有发现大量的 String, Math, StringBuilder 等类,所以没必要对它们进行排除。
via programcreek
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新 华为OD机试-D卷 的三语言AC题解 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 => 最大 N 个数与最小 N 个数的和(100分) <= 🌍 评测功能需要 =>订阅专栏<= 后联系清隆解锁~ 🍓OJ题目截图 🚗 最大 N 个数与最小 N 个数的和 问题描述 给定一个数组,编写一个函数来计算它的最大 个
问题内容: 我想知道java类的最大大小是多少。如代码属性结构中http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html#1546所示,代码长度指定为4个字节,因此很多。我不明白的是,异常表的pc属性是2个字节。如果代码长度超过2个字节,但异常表只能寻址2个字节,怎么办? 问题答案: 第4.8.1节JVM规范的静态
问题内容: 我在Pandas数据框的一栏中有文字评论,我想用频率计数来计算N个最频繁出现的单词(整列- 不在单个单元格中)。一种方法是使用计数器,通过遍历每一行来对单词进行计数。有更好的选择吗? 代表性数据。 问题答案: 我很确定会给您您想要的东西(您可能必须在调用most_common之前从计数器结果中删除一些非单词)
问题内容: 我使用此 CSS将最大高度设置为 谁能给我一个普遍的答案, 和 之间有什么区别? 问题答案: 这是W3Clink的解释: 以下算法描述了两个属性[min-height和max-height]如何影响’height’属性的使用值: 临时使用的高度是根据上面“计算高度和边距”下的规则计算的(不包括“最小高度”和“最大高度”)。 如果此暂定高度大于“最大高度”,则会再次应用上述规则,但是这次
问题内容: 我大约有15,000个抓取的网站,其正文存储在elasticsearch索引中。我需要获得在所有这些文本中使用的前100个最常用的三个词短语: 像这样: 我是新来的。我研究了术语向量,但它们似乎适用于单个文档。因此,我认为这将是术语向量和聚合与n元语法分析的结合。但是我不知道如何去实现它。任何指针都会有所帮助。 我当前的映射和设置: 问题答案: 您正在寻找的被称为 带状疱疹 。带状疱疹
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 => 最小配对和(100分) <= 🌍 评测功能需要 =>订阅专栏<= 后联系清隆解锁~ 🍓OJ题目截图 💊 最小配对和 问题描述 给定两个按升序排列的整数数组 和 。从 和 中分别取出一个元素构成一对元素,现在需要取出 对元素