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