您的位置:首页 > 编程语言 > Java开发

Top 100 Classes Used in Java Projects

2014-09-30 13:01 323 查看
1. Top 100 Java Classes
The number in parenthesis is the frequency, and it scales from 1 - 10,000. For example, “java.util.ArrayList (6958)” means out of 10,000 projects, 5958 of them use java.util.ArrayList. You can go to the full list 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)

2. Potential Usage of the Frequency List
It is not surprising that 85 are from Java standard library, since it is a part of the language. Among the 85, most of them are from util, lang and io.
This list may serve the following usage.

The frequency of usage of a class reflects its popularity and importance. For beginning Java developers, learning the most useful API first might be a good strategy.

The majority of developers all over the world reflect the trend of Java development. In this top 100, we can see that Android is very popular.

When two classes have the same/similar functionalities, the classes with the higher frequency means that the class is preferred. The classes may be preferred for different reasons, such as usability, documentation, time complexity, energy consumption, etc.

3. Distribution of the Whole List
As shown in the chart below, the distribution of the whole list has a very tall head and very long tail. So we should be interested in the top ones.



The survey is based on explicit imports in class files, foo.* is ignored, so you will not find a lot of classes in java.lang, such as String, Math, StringBuilder, etc., since it is not necessary to explicitly import them.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: