대부분의 Java 소프트웨어 개발은 다양한 라이브러리를 사용합니다. 최근 우리는 10,000개의 오픈 소스 Java 프로젝트를 분석하고 가장 일반적으로 사용되는 Java 클래스를 추출했습니다. 이러한 클래스는 Java의 표준 라이브러리 및 타사 라이브러리에서 제공됩니다. 각 클래스는 동일한 프로젝트에서 한 번만 계산되며, 상위 100개 클래스가 아래 목록에 표시됩니다.
다음 목록은 가장 많이 사용되는 클래스별로 정렬됩니다. 세 번째 값은 10,000개의 프로젝트 중에서 이 클래스를 사용하는 프로젝트 수를 나타냅니다. 전체 목록은 여기에서 확인할 수 있습니다.
java.util.ArrayList(6958)
java.io.IO예외(6866)
java.util.List(6784)
java.util.HashMap(5590)
java.util.Map(5413)
java.io.파일(5097)
java.io.InputStream(4234)
java.util.Set(3915)
java.util.Arrays(3884)
java.util.Iterator(3856)
java.util.Collections(3643)
java.util.날짜(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.직렬화 가능(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.레벨(1557)
java.lang.reflect.Field(1499)
java.io.StringWriter(1499)
android.widget.TextView(1442)
java.util.LinkedHashMap(1409)
java.io.리더(1390)
java.net.URI(1377)
java.io.작가(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.문서(1130)
android.widget.버튼(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.로거(1054)
java.sql.SQL예외(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 등의 클래스는 많이 발견되지 않았으므로 제외할 필요는 없습니다.
프로그램크릭을 통해