Java程式設計初學者看什麼書籍比較合適?
每次看到網上有很多想學習Java技術的小夥伴都在尋找一些書籍和視訊,作為一個初學者,Java程式設計初學者 看什麼樣的書籍比較適合較適合呢?或者說,如何才能輕鬆入門又能深入學習呢?當然了這不是一本書就能解決的事。小編分享一下《Java核心技術》這本書,將自己又溫習了一遍的感想跟大家聊一聊。

一、 Hash Code方法預設是呼叫該物件的地址,如果你重寫了equals方法應該重寫hash Code方法,例如你的equals方法是比較的物件的ID,就用該物件的ID來hash。
二、 instanceof並不完美,不能夠查出父子類,所以在寫equals方法的時候應該比較下是否同一個類。。
三、 String類和包裝類的值都是不能改變的,所以如果希望實現它們的引用傳遞需要使用StringHolder類和包裝類的Holder類,例如:IntHolder。
四、 C#中的委託可以用JAVA中的反射invoke方法傳遞方法指標method完成。
五、 不要使用protected修飾field因為整個包內都可以訪問,破壞了封裝性。
六、 throwable介面的實現類有2個分支,一個是error,一般情況JAVA系統的內部錯誤或者資源耗盡,對於它,除了通知使用者錯誤和讓使用者安全退出外別無他法。還有一個是exception,又分為Runtime Exception和非Runtime Exception。由於程式的錯誤導致出現的異常稱為Runtime Exception,這種問題應該在程式中解決和避免,不應該丟擲異常。而曾經能夠正常執行,在某些時候可能會出現導致的異常稱為非Runtime Exception,這種問題的解決應該丟擲異常。常見的Runtime Exception有型別轉換錯誤、陣列越界、空指標等。如果出現Runtime Exception就一定是你的問題。Error和Runtime Exception稱為未檢查異常。而非Runtime Exception稱為已檢查異常。
七、 要使用精確的浮點運算請使用Big Decimal。除法的時候注意使用小數位,否則會導致得不到精確值錯誤。
八、 建議不要在程式中使用char,因為char使用的是utf-16編碼。
九、 三種處理錯誤的機制:異常,日誌和斷言。java預設關閉使用斷言,想使用應該在執行的jvm引數中使用-ea。例如:int x= 5;要判斷x是否大於0可以使用assert x>0 : x;斷言不應該使用在程式發生了可恢復性錯誤。斷言只能用在開發和測試階段。是一種戰術性工具,而日誌才是貫穿整個生命週期的策略性工具。
十、 序列化除了能夠儲存簡單物件以外,對複雜物件也有很好的處理方式,比如如果在幾個物件共同引用一個共享物件時,就不會把這個共享物件儲存幾次,而是檢查是否已經儲存這個共享,如果沒有則儲存,如果已經儲存,則儲存一個該物件的序列號。
十一、 泛型可以單獨在非泛型類中使用,例如下泛型方法:public static void test(T t){},而且泛型可以使用多個介面,例如:public statci void test(T t){}。可以使用泛型限定超類,它與限定子類相反,例如:public class Pair,但是他可以向方法提供引數,不能使用返回值。 一般的,帶有超類的泛型可以向物件寫入,帶有子類的泛型可以從物件讀取,例如:public static> T min(T[] a){}。
掌握真正的Java開發技術,做高階Java開發工程師。另外,報班是比較快捷的學習方式,一步一步紮實掌握Java開發技術,是找到高薪工作的重要法寶!
為了讓學習變得輕鬆、高效,今天給大家免費分享一套Java教學資源。幫助大家在成為Java架構師的道路上披荊斬棘。需要資料的歡迎加入學習交流群:9285,05736
