Java Core 讀書筆記 java
1.
Jdk5.0 新增靜態導入:import static java.lang.Math.*; 安全
eg.
System.out.println(「The square root of
is 」+sqrt(PI));而不用Math.PI 函數
2.
數據類型自動升級 測試
byte àshortàintàlongàfloatàdouble spa
charà intàlongàfloatàdouble 線程
3.
一個類中的方法若是是private,static,final的,則採用靜態綁定。不然爲動態綁定。 code
4.
一個對象與另外一個對象equals相等,並非表示hashcode相等。Hashcode若是相等,並非equals就要相等。Hashcode的值跟對象的內存地址相關。 對象
5.
讓一個對象具備克隆功能,必須implements
Cloneable,若是一個類implements
Cloneable,那麼不必定要覆寫clone方法。 繼承
6.
內部類的三點好處: 接口
6.1
能夠訪問該類定義所在的做用域中的數據,如私有數據。
6.2
內部類能夠對同一個包的其餘類隱藏起來。
6.3
當想要定義一個回調函數且不想編寫大量代碼,使用匿名內部類方便。
7.
接口若是要實現另一個接口,那麼要用extends關鍵字,不能用implements。
8.
進行數據運算的時候,只有除0的操做纔會產生異常。書中說是對-1開平方會拋出異常這個在jdk6上面測試是不對的。結果應該是NaN。
9.
對於異常,早拋出,晚捕獲是很好的選擇。
10.
初版的576頁
11.
Interrupt(),interrupted,isInterrupted()的區別:
Void interrupt():發送一箇中斷請求給一個線程,讓這個線程的中斷狀態將被設爲true,若是你這個線程當前阻塞,那麼throw interruptedException
Static Boolean interrupted():檢查當前線程(即正在執行該指定的線程)是否已經被中斷,它會將當前線程的中斷狀態設爲false。
Boolean
isInterrupted():檢查一個線程是否被終止,它不會改變線程狀態。
第二版 13 頁
12.
線程優先級:默認狀況下,子線程繼承父線程的優先級,同時線程優先級高度依賴於系統,所以即便有些線程的java優先級高,可是不必定先調用。
13.
守護線程:能夠經過t.setDaemon(true)方法讓一個線程變爲守護線程。守護線程惟一的做用就是爲其餘的線程提供服務,當只剩下守護線程時,JVM會關閉掉這些線程。
14.
鎖:在下面三個條件下,對域的訪問是安全的。
14.1
域是volatile
14.2
域是final的,而且在構造器調用完成後被調用。
14.3
對域的訪問有鎖保護。
15.