學(xué)習(xí)目的
- 了解java.lang包的包含和作用
- 學(xué)會(huì)查看java.lang包下類和接口的底層源碼實(shí)現(xiàn)
- 掌握java.lang包的常用接口和類,以及常用的方法
二、java.lang
lang包提供利用 Java 編程語(yǔ)言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)類。
2.1 接口
| 接口 | 名稱 | 備注 |
|---|---|---|
2.1.1 Iterable接口
簡(jiǎn)述
實(shí)現(xiàn)這個(gè)接口的子類,允許其實(shí)例對(duì)象成為 "foreach" 語(yǔ)句的目標(biāo)作用
常見(jiàn)實(shí)現(xiàn)類
底層實(shí)現(xiàn)及常用方法
public interface Iterable<T> {
//返回一個(gè) 在一組T類型元素上 進(jìn)行迭代的迭代器
Iterator<T> iterator();
// forEach循環(huán):接口的默認(rèn)實(shí)現(xiàn),從JDK8開(kāi)始@since 1.8
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
//
default Spliterator<T> spliterator() {
return Spliterators.spliteratorUnknownSize(iterator(), 0);
}
}
2.1.2 Cloneable接口
簡(jiǎn)述
一個(gè)類實(shí)現(xiàn)了 Cloneable接口時(shí),可以使用Object.clone()方法合法地對(duì)該類實(shí)例進(jìn)行按字段復(fù)制。如果一個(gè)類在沒(méi)有實(shí)現(xiàn) Cloneable 接口的實(shí)例上調(diào)用 Object 的 clone 方法,則會(huì)導(dǎo)致拋出 CloneNotSupportedException 異常。作用
一種代碼規(guī)定,一個(gè)類只有實(shí)現(xiàn)了Cloneable接口,才能調(diào)用Object類的clone()方法。常見(jiàn)實(shí)現(xiàn)類
底層實(shí)現(xiàn)及常用方法
//Cloneable底層源碼并沒(méi)有任何可實(shí)現(xiàn)的方法,實(shí)現(xiàn)該接口只是一個(gè)規(guī)定
public interface Cloneable {
}
2.1.3 Comparable接口
- 簡(jiǎn)述
Comparable接口 強(qiáng)行對(duì)實(shí)現(xiàn)它的 每個(gè)類的對(duì)象進(jìn)行整體排序,這種排序被稱為類的自然排序。 - 作用
- 實(shí)現(xiàn)此接口的 對(duì)象列表(和數(shù)組)可以通過(guò) Collections.sort() 和 Arrays.sort() 進(jìn)行自動(dòng)排序。
- 實(shí)現(xiàn)此接口的對(duì)象可以用作 有序映射中的鍵 或 有序集合中的接口 中的元素,無(wú)需指定比較器中的接口
- 常見(jiàn)實(shí)現(xiàn)類
- 底層實(shí)現(xiàn)及常用方法
/*比較此對(duì)象 與 指定對(duì)象的順序。
若該對(duì)象小于、等于或大于指定對(duì)象,則分別返回負(fù)整數(shù)、零或正整數(shù)
*/
public interface Comparable<T> {
public int compareTo(T o);
}
2.1.4 Runnable接口
- 簡(jiǎn)述
Runnable 接口應(yīng)該由那些 打算通過(guò)某一線程 執(zhí)行其實(shí)例的類來(lái)實(shí)現(xiàn),該實(shí)現(xiàn)類必須定義一個(gè) run() 的無(wú)參數(shù)方法。 - 作用
設(shè)計(jì)該接口的目的:希望在活動(dòng)時(shí) 為執(zhí)行代碼的對(duì)象提供一個(gè)公共協(xié)議。 - 常見(jiàn)實(shí)現(xiàn)類
- 子類:Thread線程類,TimerTask
- 底層實(shí)現(xiàn)及常用方法
@FunctionalInterface
public interface Runnable {
//使用實(shí)現(xiàn)接口Runnable的對(duì)象 創(chuàng)建一個(gè)線程時(shí),啟動(dòng)該線程 將導(dǎo)致在獨(dú)立執(zhí)行的線程中調(diào)用對(duì)象的 run 方法
public abstract void run();
}
2.1.5 Thread接口
簡(jiǎn)述
當(dāng)線程因未捕獲的異常而突然終止時(shí),調(diào)用處理程序的接口。作用
當(dāng)某一線程因未捕獲的異常而即將終止時(shí),Java 虛擬機(jī)將使用 Thread.getUncaughtExceptionHandler()方法查詢?cè)摼€程 以獲得其 UncaughtExceptionHandle的線程,并調(diào)用處理程序的 uncaughtException() 方法,將線程和異常作為參數(shù)傳遞。常見(jiàn)實(shí)現(xiàn)類
底層實(shí)現(xiàn)及常用方法
public interface Thread {
/*當(dāng)給定線程 因 給定的未捕獲異常 而終止時(shí),調(diào)用該方法
Java 虛擬機(jī)將忽略該方法拋出的任何異常
*/
void uncaughtException(Thread t,Throwable e);
}
2.1.6 Readable接口
- 簡(jiǎn)述
Readable接口是一個(gè)字符源,實(shí)現(xiàn)該接口的類可以 以字符形式 對(duì)文件進(jìn)行讀取。 - 作用
- 常見(jiàn)實(shí)現(xiàn)類
- 子接口
- 子類:BufferedReader、Reader、FileReader、InputStreamReader
- 底層實(shí)現(xiàn)及常用方法
//該方法在底層書寫時(shí)自帶異常拋出,調(diào)用時(shí)必須處理
public interface Readable {
//試圖將 字符 讀入指定的 字符緩沖區(qū),cb - 將要讀入字符的緩沖區(qū)
public int read(java.nio.CharBuffer cb) throws IOException;
}
2.1.7 Appendable
- 簡(jiǎn)述
一個(gè)類的實(shí)例對(duì)象想添加 cha序列和值,或者某個(gè)類的實(shí)例打算接收取自 Formatter的格式化輸出,那么該類必須實(shí)現(xiàn)Appendable接口。 - 作用
- 常見(jiàn)實(shí)現(xiàn)類
- 子類:BufferedWriter、FileWriter、OutputStreamWriter、PrintStream、StringBuffer、StringBuilder、StringWriter、Writer
- 底層實(shí)現(xiàn)及常用方法
public interface Appendable {
//向此 Appendable 添加指定的字符序列,若csq為null,則添加四個(gè)字符 "null"
Appendable append(CharSequence csq) throws IOException;
//向此 Appendable 添加指定字符序列的子序列,start 子序列中起始索引,end子序列最后索引
Appendable append(CharSequence csq, int start, int end) throws IOException;
//向此 Appendable 添加指定字符
Appendable append(char c) throws IOException;
}
2.2 常用類
| 類名 | 作用 | 備注 |
|---|---|---|
2.2.1 包裝類
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.2 Class類
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.3 System系統(tǒng)類
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.4
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.5
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.6
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.7
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.8
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法
2.2.9
- 簡(jiǎn)述
- 作用
- 常見(jiàn)父類或接口
- 底層實(shí)現(xiàn)及常用方法