深入JDK源码,这里总有你不知道的知识点!
Java的基礎知識有很多,但是我認為最基礎的知識應該要屬jdk的基礎代碼,jdk的基礎代碼里面,有分了很多基礎模塊,其中又屬jdk包下面的lang包最為基礎。
我們下面將總結和分析一下lang包下面最為基礎和常用的幾個部分。
1:常用的對象類型包
(1)其中最基礎的類為Object,所有的對象都是繼承于這個類的。我們知道所有的類如果沒有顯示的聲明繼承于哪個類的話,默認都會繼承于Object類,這個類里面也有很多我們常用的方法的默認實現。
(2)然后就是字符串類了,我們常用的有String、StringBuilder和StringBuffer三個和字符串相關的類,在jdk1.8里面String類還增加了join靜態方法用來結合多個字符串
(3)最好還有8種基本元素的包裝類,里面對于每種不同類型的基本進行了包裝,并提供了相應的操作方法。
2: 常用的異常類型包:
(1)異常全部繼承于Throwable類,Throwable類是所有異常的基礎類。
(2)Error類型是Throwable類的子類,這種異常表示的是一般是指與虛擬機相關的問題,如系統崩潰,虛擬機錯誤,內存空間不足,方法調用棧溢等
(3)Exception類型是Throwable類的子類,這種異常表示程序可以處理、可以恢復的異常,對于這種異常應該在代碼中進行處理,不應該被程序最終拋出。 Exception類又被分為兩類,一類是需要檢查的異常,是被強制要在代碼中進行處理,另一類是運行時異常,是在代碼運行的時候出錯時出現。
3: 常用的接口包
(1)Comparable接口表示用于可以比較大小的類
(2)Runnable接口表示這個類是要被作為一個線程執行
(3)AutoCloseable接口表示類擁有資源,在銷毀類的時候需要自動銷毀擁有的資源。
(4)Iterable接口表示這個類可以執行foreach循環操作
4: 系統包
(1)System類,他里面包含了幾個可以用于獲得系統相關的有用方法。最常見的有獲得系統時間,獲得系統屬性,獲得系統0/1/2文件描述符,利用系統函數拷貝數組內容。
(2)Runtime類,他里面可以獲得應用運行時的一些狀態(主要包括使用的內存和cpu個數)和在應用運行時執行一些操作(程序退出、執行gc、設置退出時的鉤子函數)。
(3)Thread類,他里面包括了線程相關的操作,主要有線程屬性的設置(優先級、名稱、類別)和改變線程運行狀態(啟動、睡眠、中斷等)。
(4)ThreadLocal類主要是保存以線程級別的運行狀態的類。
5: 注解包
這個系列的提供了可以用于自定義注解方法和一些常用的注解,其中最為重要的就是FunctionalInterface注解,一個接口如果使用了這個注解,則表示了具有lambda特性的接口。
6: 反射包
這個系列使得我們可以通過反射的方式得到對象的屬性或者通過反射的方式執行對象的方法。主要常用的有Field、Method、Construct、Paramter、Array、Proxy幾個類。
7: 其他包
其他類包括了一些不是太常用,但是在某些場景下特別有用的工具。
(1)Ref包提供了與 Java 垃圾回收器密切相關的引用類。這些引用類對象可以指向其它對象,但它們不同于一般的引用,因為它們的存在并不防礙 Java 垃圾回收器對它們所指向的對象進行回收。其好處就在于使者可以保持對使用對象的引用,同時 JVM 依然可以在內存不夠用的時候對使用對象進行回收。
(2)Management包提供提供管理接口,用于監視和管理 Java 虛擬機以及 Java 虛擬機在其上運行的操作系統。最常用的有MemoryMXBean、MemoryPoolMXBean、RuntimeMXBean、ThreadMXBean四個獲得不同類型數據的MXBean。
(3)Instrument包提供了提供允許 Java 編程語言代理檢測運行在 JVM 上的程序的服務,利用它提供的Instrumentation類和ClassFileTrasformation類,利用這兩個類加上-javaagent命令,可以在程序運行之前,完成對字節碼的修改,利用這個方法可以有效的對程序進行監控。
最后附上一個關于jdk里面lang包里面常用類和方法的思維導圖:
如果你覺得我們總結的知識可以幫到你,可以到加群: 632109190一起進行學習和討論。
轉載于:https://www.cnblogs.com/mawang/p/6806446.html
總結
以上是生活随笔為你收集整理的深入JDK源码,这里总有你不知道的知识点!的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 姓王的男孩名字最好听
- 下一篇: 奔驰c200多少钱啊?
