การพัฒนาซอฟต์แวร์ Java ส่วนใหญ่ใช้ไลบรารีต่างๆ เมื่อเร็วๆ นี้ เราได้วิเคราะห์โปรเจ็กต์ Java โอเพ่นซอร์สกว่า 10,000 โปรเจ็กต์ และแยกคลาส Java ที่ใช้บ่อยที่สุดออกมา แต่ละคลาสจะถูกนับเพียงครั้งเดียวในโปรเจ็กต์เดียวกัน และคลาส 100 อันดับแรกจะแสดงอยู่ในรายการด้านล่าง
รายการต่อไปนี้จัดเรียงตามคลาสที่ใช้มากที่สุด ค่าที่สามแสดงถึงจำนวนโปรเจ็กต์ที่ใช้คลาสนี้จากทั้งหมด 10,000 โปรเจ็กต์ สามารถพบได้ ที่นี่
java.util.ArrayList(6958)
java.io.IOException (6866)
java.util.รายการ (6784)
java.util.HashMap (5590)
java.util.Map (5413)
java.io.ไฟล์ (5097)
java.io.InputStream (4234)
java.util.ชุด(3915)
java.util.อาร์เรย์ (3884)
java.util.ตัววนซ้ำ(3856)
java.util.คอลเลกชัน(3643)
java.util.วันที่(3461)
java.util.HashSet(3278)
java.io.BufferedReader(3257)
java.util.คอลเลกชัน(3192)
java.net.URL(3168)
java.io.FileInputStream (3044)
java.io.InputStreamReader (3023)
org.junit.ทดสอบ(3008)
java.io.FileOutputStream (2843)
java.io.FileNotFoundException(2669)
java.io.OutputStream (2563)
java.util.regex.รูปแบบ(2469)
java.io.ซีเรียลไลซ์ได้ (2437)
java.util.LinkedList(2372)
java.text.SimpleDateFormat(2245)
java.util.คุณสมบัติ(2190)
java.util.สุ่ม(2171)
java.lang.reflect.Method(2141)
java.io.ByteArrayOutputStream (2112)
java.util.regex.Matcher (2012)
android.os.บันเดิล(2007)
java.util.logging.Logger(1999)
java.io.UnsupportedEncodingException(1968)
org.junit.ก่อน(1920)
java.util.เปรียบเทียบ (1896)
java.io.ByteArrayInputStream (1868)
java.io.PrintWriter (1862)
java.util.ปฏิทิน(1854)
android.app.กิจกรรม(1843)
java.net.MalformedURLException(1828)
android.content.บริบท(1780)
android.view.View(1731)
java.util.Locale(1719)
java.util.แจงนับ (1709)
java.util.Map.รายการ (1705)
java.io.FileWriter (1677)
java.io.FileReader(1651)
android.util.Log(1614)
android.content.เจตนา(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.Reader(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.เวกเตอร์ (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.ขนมปังปิ้ง(1157)
java.util.Hashtable (1154)
java.lang.reflect.ตัวสร้าง(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.สี(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.ผู้บริหาร (1062)
java.net.UnknownHostException(1057)
org.slf4j.Logger(1054)
java.sql.SQLException (1043)
org.slf4j.LoggerFactory(1042)
java.util.UUID(1040)
java.net.Inetที่อยู่ (1026)
junit.framework.ยืนยัน(1011)
android.view.ViewGroup (1005)
java.util.concurrent.ConcurrentHashMap (1001)
java.awt.event.ActionEvent (995)
ในตารางด้านบน ไม่น่าแปลกใจเลยที่ 85 รายการในนั้นเป็นไลบรารีมาตรฐานของ Java เนื่องจากนี่เป็นส่วนหนึ่งของภาษาที่เกี่ยวข้องกับแพ็คเกจ util, lang และ io
รูปต่อไปนี้คือแผนภาพการกระจายการใช้บรรจุภัณฑ์:
การตรวจสอบคือการวิเคราะห์คำสั่งการนำเข้าในไฟล์ซอร์สโค้ด ดังนั้นคุณจึงไม่พบคลาส String, Math, StringBuilder และคลาสอื่นๆ จำนวนมาก ดังนั้นจึงไม่จำเป็นต้องแยกคลาสเหล่านี้ออก
ผ่านโปรแกรมครีก