Java日常學習知識點總結——Day01
一、Java一個類的構造方法、初始化程式碼塊、靜態初始化程式碼塊在繼承中的執行順序:
(1)靜態初始化程式碼塊 > 初始化程式碼塊 > 構造方法
(2)父類 > 子類
綜合下來的順序便是:
-
父類靜態初始化程式碼塊
-
子類靜態初始化程式碼塊
-
父類初始化程式碼塊
-
父類構造方法
-
子類初始化程式碼塊
-
子類構造方法
值得注意的是:靜態資源是類第一次載入的時候就會進行初始化!
二、如何實現(type1)編碼位元組流轉換為(type2)編碼位元組流(byte[] src,dst):
答案:dst = new String(src,"type1").getBytes("type2");
三、請列舉出四個Java會拋InterruptedException(執行緒中斷異常)的方法:
-
java.lang.Object類的 wait() 方法
-
java.lang.Thread類的 sleep() 方法
-
java.lang.Thread類的 join() 方法
-
java.util.concurrent.CyclicBarrier類的 await() 方法
四、Object類包含哪些方法:
-
clone():建立並返回此物件的一個副本;
-
equals(Object obj):只是其他某個物件是否與此物件“相等”;
-
finalize();當垃圾回收器確定不存在對該物件的更多引用時,由物件的垃圾回收器呼叫此方法;
-
getClass();返回此Object的執行時類;
-
notify();喚醒在此物件監視器上等待的單個執行緒;
-
notifyAll();喚醒在此物件監視器上等待的所有執行緒;
-
hashCode();返回該物件的雜湊碼值;
-
toString();返回該物件的字串表示;
-
wait();在其他執行緒呼叫此物件的notify()方法和notifyAll()方法之前,導致該執行緒等待;
五、HashMap類的描述:
-
HashMap是一個散列表,它儲存的內容是鍵值對(key - value)的對映關係;
-
HashMap內部的資料是無序儲存的;
-
HashMap的鍵和值都可以為null;
-
HashMao繼承於AbstractMap,實現了Map、Cloneable、java.io.Serializable介面;
-
HashMap的實現不是同步的,因此它不是執行緒安全的;
六、方法重寫和過載的區別:
方法過載:
-
方法名一定要相同
-
方法的引數表必須不同,包括引數的型別和個數
-
方法的返回型別和修飾發可以相同,也可以不同
-
可以丟擲不同的異常。
-
出現在一個類中
方法重寫:
-
父類方法的引數列表必須完全與被子類重寫的方法的引數列表相同,否則不能稱其為重寫而是過載;
-
父類的返回型別必須與被子類重寫的方法返回型別相同,否則不能稱其為重寫而是過載;
-
由於父類的訪問許可權修飾符的限制一定要大於被子類重寫方法的訪問許可權修飾符,而private許可權最小,所以如果某一個方法在父類中的訪問許可權是private,那麼就不能在子類中對其進行重寫。如果重新定義,也只是定義了一個新的方法,不會達到重寫的效果。
-
繼承過程中如果父類當中的方法丟擲異常,那麼在子類中重寫父類的該方法時,也要丟擲異常,而且丟擲的異常不能多於父類中丟擲的異常(可以等於父類中丟擲的異常)。換句話說,重寫方法一定不能丟擲新的檢查異常,
-
出現在繼承(extends)和實現(implement)中