JDK基本庫概述
看腳下,不斷行,莫存順逆。
剖析java的哪些源碼
目前主要是java基本庫的一些源碼的分析,jvm工具的使用等等,後續可能還會結合hotspot源碼來分析jvm原理,當然,這是一個比較高級的主題,根據時間和進度來定。
jdk版本
目前選定的是生產環境下使用最多的jdk1.8,具體版本號為 jdk1.8.0_181。
java的基本庫包含哪些內容
根據jdk1.8的官方文檔,主要分為兩大類:
- Lang和util的包 – 提供基本的Object和Class類,原始類型的包裝器類,基本的數學類等。
- 其他包 – IO,網絡以及對象系列化等等等等。
Lang和Util庫
具體包含如下:
庫 | 描述 | 進一步了解 |
---|---|---|
Math | 浮點數計算以及任意精度計算 | Math |
監控與管理 | 對Java平台的全面監視和管理支持,包括Java虛擬機的監視和管理API,日誌記錄工具的監視和管理API,jconsole和其他監視實用程序,開箱即用的監視和管理,Java管理擴展(JMX)和Oracle的Platform Extension。 | 監控與管理 |
引用對象 | 引用對象支持與垃圾收集器的有限程度的交互。程序可以使用引用對象來維護對某個其他對象的引用,以使收集器仍可以回收後者的對象。在收集器確定給定對象的可到達性已更改之後的某個時間,程序也可能會收到通知。因此,引用對象可用於構建簡單的緩存以及在內存不足時刷新的緩存,實現不阻止其鍵(或值)被回收的映射以及更靈活地安排事前清理操作Java終結機制所無法實現的方式。 | 對象引用 |
反射 | 反射使Java代碼能夠發現有關已加載類的字段,方法和構造函數的信息,並在安全性限制內使用反射的字段,方法和構造函數對對象的基礎對象進行操作。 API容納需要訪問目標對象的公共成員(基於其運行時類)或給定類聲明的成員的應用程序。程序可以禁止默認的反射訪問控制。 | 反射 |
集合框架 | 集合是代表一組對象的對象。集合框架是用於表示集合的統一體系結構,使它們可以獨立於表示的細節進行操作。它減少了編程工作,同時提高了性能。它允許無關API之間的互操作性,減少了設計和學習新API的工作量,並促進了軟件重用。 | 集合框架 |
並發工具集 | 並發實用程序包提供了高性能線程實用程序(例如線程池和阻塞隊列)的強大,可擴展的框架。該軟件包使程序員無需手工製作這些實用程序,這與Collections Framework用於數據結構的方式幾乎相同。此外,這些軟件包為高級並發編程提供了低級原語。 | 並發工具集 |
日誌 | 日誌API通過生成適合最終用戶,系統管理員,現場服務工程師和軟件開發團隊進行分析的日誌報告,促進了客戶站點的軟件服務和維護。日誌API捕獲信息,例如安全失敗,配置錯誤,性能瓶頸和/或應用程序或平台中的錯誤。 | 日誌 |
首選項 | 首選項API為應用程序提供了一種存儲和檢索用戶及系統首選項和配置數據的方式。數據永久存儲在與實現相關的後備存儲中。偏好節點有兩棵單獨的樹,一棵用於用戶偏好,一棵用於系統偏好。 | 首選項 |
其他包
具體包含內容如下:
庫 | 描述 | 進一步了解 |
---|---|---|
I/O | java.io和java.nio軟件包提供了一組豐富的API,用於管理應用程序的I / O。該功能包括文件和設備I / O,對象序列化,緩衝區管理以及字符集支持。此外,API支持可伸縮服務器的功能,包括多路復用,非阻塞I / O,內存映射和文件鎖定。 | I/O |
對象系列化 | 對象序列化通過支持對象擴展了核心Java輸入/輸出類。對象序列化支持對象的編碼以及從對象可訪問的對象到位元組流的編碼。它支持從流中補充重建對象圖。序列化用於輕量級的持久性,並用於通過套接字或遠程方法調用(RMI)進行通信。 | 對象序列化 |
網絡 | 提供用於網絡功能的類,包括地址,用於使用URL和URI的類,用於連接到服務器的套接字類,網絡安全功能等。 | 網絡 |
安全 | 用於與安全相關的功能的API,例如可配置的訪問控制,數字簽名,身份驗證和授權,加密,安全的Internet通信等。 | 安全 |
Java管理擴展(JMX) | Java管理擴展(JMX)API是用於管理和監視資源(例如應用程序,設備,服務和Java虛擬機)的標準API。典型用途包括諮詢和更改應用程序配置,累積有關應用程序行為的統計信息以及通知狀態更改和錯誤情況。 JMX API包括遠程訪問,因此,出於這些目的,遠程管理程序可以與正在運行的應用程序進行交互。 | JMX |
此外,還包括很多,比如國際化、JNI、xml、擴展機制、Endorsed Standards Override Mechanism等等等等。
最後,注意除了基本庫外,還定義了集成庫,比如常用的jdbc,RMI,腳本化技術、JNDI技術等;以及用戶接口庫,比如AWT,聲音,圖像,打印服務等等等等,具體可以參照jdk1.8的官方文檔做進一步了解。
源碼研習計劃
- 四大主題依次為集合、並發、IO和網絡;優先級最高。
- 其他主題,分別為反射、對象引用機制,對象序列化技術、JMX以及安全;優先級較高。
總結
宏觀統籌,本篇文章做到了宏觀統籌,參考了jdk1.8的幫助文檔,算是比較權威全面的。接下來開始微觀入手,進入四大主題的第一個主題 – 集合框架。