JAVA基礎(chǔ)包之java.lang核心類包

學(xué)習(xí)目的

  1. 了解java.lang包的包含和作用
  2. 學(xué)會(huì)查看java.lang包下類和接口的底層源碼實(shí)現(xiàn)
  3. 掌握java.lang包的常用接口和類,以及常用的方法

二、java.lang

lang包提供利用 Java 編程語(yǔ)言進(jìn)行程序設(shè)計(jì)的基礎(chǔ)類。

2.1 接口

接口 名稱 備注

2.1.1 Iterable接口

  1. 簡(jiǎn)述
    實(shí)現(xiàn)這個(gè)接口的子類,允許其實(shí)例對(duì)象成為 "foreach" 語(yǔ)句的目標(biāo)

  2. 作用

  3. 常見(jiàn)實(shí)現(xiàn)類

  4. 底層實(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接口

  1. 簡(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 異常。

  2. 作用
    一種代碼規(guī)定,一個(gè)類只有實(shí)現(xiàn)了Cloneable接口,才能調(diào)用Object類的clone()方法。

  3. 常見(jiàn)實(shí)現(xiàn)類

  4. 底層實(shí)現(xiàn)及常用方法

//Cloneable底層源碼并沒(méi)有任何可實(shí)現(xiàn)的方法,實(shí)現(xiàn)該接口只是一個(gè)規(guī)定
public interface Cloneable {
}

2.1.3 Comparable接口

  1. 簡(jiǎn)述
    Comparable接口 強(qiáng)行對(duì)實(shí)現(xiàn)它的 每個(gè)類的對(duì)象進(jìn)行整體排序,這種排序被稱為類的自然排序。
  2. 作用
  • 實(shí)現(xiàn)此接口的 對(duì)象列表(和數(shù)組)可以通過(guò) Collections.sort() 和 Arrays.sort() 進(jìn)行自動(dòng)排序。
  • 實(shí)現(xiàn)此接口的對(duì)象可以用作 有序映射中的鍵 或 有序集合中的接口 中的元素,無(wú)需指定比較器中的接口
  1. 常見(jiàn)實(shí)現(xiàn)類
  2. 底層實(shí)現(xiàn)及常用方法
/*比較此對(duì)象 與 指定對(duì)象的順序。
  若該對(duì)象小于、等于或大于指定對(duì)象,則分別返回負(fù)整數(shù)、零或正整數(shù) 
*/
public interface Comparable<T> {
     public int compareTo(T o);
}

2.1.4 Runnable接口

  1. 簡(jiǎn)述
    Runnable 接口應(yīng)該由那些 打算通過(guò)某一線程 執(zhí)行其實(shí)例的類來(lái)實(shí)現(xiàn),該實(shí)現(xiàn)類必須定義一個(gè) run() 的無(wú)參數(shù)方法。
  2. 作用
    設(shè)計(jì)該接口的目的:希望在活動(dòng)時(shí) 為執(zhí)行代碼的對(duì)象提供一個(gè)公共協(xié)議。
  3. 常見(jiàn)實(shí)現(xiàn)類
  • 子類:Thread線程類,TimerTask
  1. 底層實(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接口

  1. 簡(jiǎn)述
    當(dāng)線程因未捕獲的異常而突然終止時(shí),調(diào)用處理程序的接口。

  2. 作用
    當(dāng)某一線程因未捕獲的異常而即將終止時(shí),Java 虛擬機(jī)將使用 Thread.getUncaughtExceptionHandler()方法查詢?cè)摼€程 以獲得其 UncaughtExceptionHandle的線程,并調(diào)用處理程序的 uncaughtException() 方法,將線程和異常作為參數(shù)傳遞。

  3. 常見(jiàn)實(shí)現(xiàn)類

  4. 底層實(shí)現(xiàn)及常用方法

public interface Thread {
      /*當(dāng)給定線程 因 給定的未捕獲異常 而終止時(shí),調(diào)用該方法
         Java 虛擬機(jī)將忽略該方法拋出的任何異常
      */
      void uncaughtException(Thread t,Throwable e);
}

2.1.6 Readable接口

  1. 簡(jiǎn)述
    Readable接口是一個(gè)字符源,實(shí)現(xiàn)該接口的類可以 以字符形式 對(duì)文件進(jìn)行讀取。
  2. 作用
  3. 常見(jiàn)實(shí)現(xiàn)類
  • 子接口
  • 子類:BufferedReader、Reader、FileReader、InputStreamReader
  1. 底層實(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

  1. 簡(jiǎn)述
    一個(gè)類的實(shí)例對(duì)象想添加 cha序列和值,或者某個(gè)類的實(shí)例打算接收取自 Formatter的格式化輸出,那么該類必須實(shí)現(xiàn)Appendable接口。
  2. 作用
  3. 常見(jiàn)實(shí)現(xiàn)類
  • 子類:BufferedWriter、FileWriter、OutputStreamWriter、PrintStream、StringBuffer、StringBuilder、StringWriter、Writer
  1. 底層實(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 包裝類

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.2 Class類

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.3 System系統(tǒng)類

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.4

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.5

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.6

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.7

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.8

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法

2.2.9

  1. 簡(jiǎn)述
  2. 作用
  3. 常見(jiàn)父類或接口
  4. 底層實(shí)現(xiàn)及常用方法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容