A maior parte do desenvolvimento de software Java usa várias bibliotecas. Recentemente, analisamos 10.000 projetos Java de código aberto e extraímos as classes Java mais comumente usadas. Essas classes vêm da biblioteca padrão do Java e de bibliotecas de terceiros. Cada turma é contada apenas uma vez no mesmo projeto, e as 100 melhores turmas são mostradas na lista abaixo.
A lista a seguir é classificada pela classe mais usada. O terceiro valor representa o número de projetos que usam esta classe entre 10.000 projetos.
java.util.ArrayList(6958)
java.io.IOException(6866)
java.util.List(6784)
java.util.HashMap(5590)
java.util.Map(5413)
java.io.Arquivo(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.Propriedades(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.Comparador(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.Enumeração(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.Documento(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)
Na tabela acima, não surpreende que 85 delas sejam biblioteca padrão do Java, pois esta faz parte da própria linguagem, envolvendo os pacotes util, lang e io.
A figura a seguir é o diagrama de distribuição do uso do pacote:
A investigação consiste em analisar as instruções de importação no arquivo de código-fonte, portanto você não encontrou um grande número de String, Math, StringBuilder e outras classes, portanto não há necessidade de excluí-las.
via programacreek