La mayor parte del desarrollo de software Java utiliza varias bibliotecas. Recientemente, analizamos 10.000 proyectos Java de código abierto y extrajimos las clases Java más utilizadas. Estas clases provienen de la biblioteca estándar de Java y de bibliotecas de terceros. Cada clase se cuenta solo una vez en el mismo proyecto y las 100 clases principales se muestran en la lista siguiente.
La siguiente lista está ordenada por la clase más utilizada. El tercer valor representa el número de proyectos que utilizan esta clase entre 10.000 proyectos. La lista completa se puede encontrar aquí .
java.util.ArrayList(6958)
java.io.IOException(6866)
java.util.List(6784)
java.util.HashMap(5590)
java.util.Map(5413)
java.io.Archivo(5097)
java.io.InputStream(4234)
java.util.Set(3915)
java.util.Arrays(3884)
java.util.Iterator(3856)
java.util.Colecciones(3643)
java.util.Fecha(3461)
java.util.HashSet(3278)
java.io.BufferedReader(3257)
java.util.Colección(3192)
java.net.URL(3168)
java.io.FileInputStream(3044)
java.io.InputStreamReader(3023)
org.junit.Prueba(3008)
java.io.FileOutputStream(2843)
java.io.FileNotFoundException(2669)
java.io.OutputStream(2563)
java.util.regex.Patrón(2469)
java.io.Serializable(2437)
java.util.ListaEnlazada(2372)
java.text.SimpleDateFormat(2245)
java.util.Properties(2190)
java.util.Aleatorio(2171)
java.lang.reflect.Método (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.Antes (1920)
java.util.Comparator(1896)
java.io.ByteArrayInputStream(1868)
java.io.PrintWriter(1862)
java.util.Calendario(1854)
android.app.Actividad (1843)
java.net.MalformedURLException(1828)
android.content.Context (1780)
Android.view.View (1731)
java.util.Locale(1719)
java.util.Enumeración(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.texto.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.seguridad.NoSuchAlgorithmException(1134)
org.w3c.dom.Documento(1130)
android.widget.Botón(1129)
org.junit.Después(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.Retención(1075)
java.seguridad.MessageDigest(1072)
java.util.concurrent.Ejecutores(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)
En la tabla anterior, no sorprende que 85 de ellas sean la biblioteca estándar de Java, porque es parte del lenguaje mismo, e involucra los paquetes util, lang e io.
La siguiente figura es el diagrama de distribución del uso del paquete:
La investigación consiste en analizar las declaraciones de importación en el archivo de código fuente, por lo que no encontró una gran cantidad de clases String, Math, StringBuilder y otras, por lo que no es necesario excluirlas.
vía programcreek