1. 抽象類中不必定非得有抽象方法,就算沒有抽象方法,編譯也不會出錯。
二、interface 繼承 interface 用extends關鍵字。
三、在泛型中 E 實現一個接口用 extends關鍵字。
四、枚舉類型也能夠做爲HashMap中的key使用
五、枚舉類型也會被編譯成class文件。命名格式和內部類相同。也能夠被其餘類調用,但也須要在前加上類名。
六、在定義多個不定參數的方法時候,不定參數必須在最後一個。
void go(int x, String... y){
}
7. Boolean.valueOf(String s) 該方法忽略大小寫。
8. interface中不管是方法仍是屬性都默認爲public,不能用其餘可見性修飾符
9. 泛型中能夠用super 如:List<? super String>
10. 直接取對象中的屬性的時候 是從定義引用類型對象中取,而非實際的對象類型中取。
11. TreeSet 的subset中全部的操做都會反映到該Treeset中。TreeSet的subset的add方法的數值不能超出subset的範圍。
12. 要序列化一個類的對象,該類和其所依賴的類都必須實現序列化接口。 可是若是父類已經實現了序列化接口,子類就無需實現序列化接口了。
1三、 method(int... value) 和method(int x,int y)能夠共存。
1四、若是一個類沒有定義任何構造器的話,默認會有一個無參構造器;可是當一個類定義了一個有參構造器的時候,並不會自動構造一個無參構造器;這樣可能會引發須要無參構造器的子類編譯出錯。
15.能夠在一個Thread的子類的構造方法中啓動此線程。
16. try 後面能夠不加catch。不過至少得有finally。
17.在反序列化過程當中,將使用該類的公用或受保護的無參數構造方法初始化不可序列化類的字段。可序列化的子類必須可以訪問無參數構造方法。可序列化子類的字段將從該流中恢復。 PS、若是超類未實現序列化接口。 那麼在反序列化其子類的時候,會調用超類的無參構造器。
18. 在catch Exception時,超類的Exception要放在最後catch 不然會出錯。
19. DateFormat 初始化通常用其下的getDateInstance方法。 把date轉換成String 用 format方法,反之用parse方法。
20. 在某個類的成員方法內部也能夠有一個非匿名的 內部類的聲明。 編譯後 class文件如 [類名]$1[內部類名]
21. run方法也能夠用synchronized 修飾。
22. Arrays.sort(數組) 該數組若是是不一樣類的對象組成的 會出ClassCastException
23. public void takeList(List<? extends String> list){ list.add("123")} 出錯 改爲super 就能夠了。
24. 非靜態方法,同步用的是對象鎖,若是是靜態方法,同步是用的類鎖。
25. 子類重寫父類的方法時,其方法的返回值類型能夠是父類該方法返回值類型的子類,而不能是父類。
26. 子類重寫父類的靜態方法時,不能使用super關鍵字。。PS:這其實不該該算是override。
27. 在構造中調用其餘的構造方法只能用this 關鍵字。
28. case default 只能寫在最後。
29. Arrays 類的 binarySearch(Object[] a, Object key) 使用二分搜索法來搜索指定數組. 調用前必須排序,不然結果不肯定。 若是搜索不到該對象,會返回此值可插入位置的負值-1. 也就是排在此對象前的對象的索引的負值-1.
30.NumberFormat 的 SetMaximumFractionDigits等方法會四捨五入。 git
31. 一個對象的hashcode會被用做索引,此索引方便在相應的容器中快速定位到此對象。 若是有多個對象的hashcode相同,那麼至關於一個索引對應多個對象。這樣須要再次在這多個對象中線性查找出你想要找到的對象。 數組
32. Console類只有readPassword方法返回的是char[]