Top 100 Classes Used in Java Projects
A large portion of Java software development is using APIs from various libraries. From 10,000 open source Java projects, I extracted the frequency of API classes. The classes are either from Java standard library or from third-party libraries. Each class is counted once for each project. The list below shows the top 100.
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.
Related posts:
If you want someone to read your code, please put the code inside
and
tags. For example:
I guess the number of example should be one mistake
For example, “java.util.ArrayList (6958)” means out of 10,000 projects, 5958 of them use java.util.ArrayList. It should be 6958 . Am I right ?
100 + Java mini projects With Source Code
Are you looking for Big and free collection of java projects with source code, your search ends here we have a collection of almost 100+ java projects for you. Java is the well known and widely used language for mobile as well as web applications. Download Java mini projects with source code for academic and final year projects. Just download Java mini projects and create database according to the information provided.
Pocket Tanks Game Java mini projects are the game project which is actually like commercially available pocket Tank game. It uses the applet and servlet concept of java programming to run the program.
Java mini projects With Source Code List
Other Projects to Try:
Reader Interactions
Comments
Thank You ProjectsGeek. The alumini project was helpful for profile creation. However I am looking for some help or sample where when a profile creates and posts something those posts to list on landing page of application irrespective of who posted. similar to techcrunch. Can you please guide me to similar project that you have?
Thank You
Do you have any java project close to social networking web application? Even if its not for social networking something where a profile can be created and then viewed?
@Yuthika . What problem you are facing ? Please Let us know so that we can sort that out. You need to click on the button to the corresponding project which will take you to the project page.
On that page you can download Project.
Do you have any java code for calculating attendance like bunk manager app available in play store using applet