Java編程初學(xué)者看什么書籍比較合適?

每次看到網(wǎng)上有很多想學(xué)習(xí)Java技術(shù)的小伙伴都在尋找一些書籍和視頻,作為一個(gè)初學(xué)者,Java編程初學(xué)者 看什么樣的書籍比較適合較適合呢?或者說,如何才能輕松入門又能深入學(xué)習(xí)呢?當(dāng)然了這不是一本書就能解決的事。小編分享一下《Java核心技術(shù)》這本書,將自己又溫習(xí)了一遍的感想跟大家聊一聊。

  一、 Hash Code方法默認(rèn)是調(diào)用該對(duì)象的地址,如果你重寫了equals方法應(yīng)該重寫hash Code方法,例如你的equals方法是比較的對(duì)象的ID,就用該對(duì)象的ID來hash。

  二、 instanceof并不完美,不能夠查出父子類,所以在寫equals方法的時(shí)候應(yīng)該比較下是否同一個(gè)類。。

  三、 String類和包裝類的值都是不能改變的,所以如果希望實(shí)現(xiàn)它們的引用傳遞需要使用StringHolder類和包裝類的Holder類,例如:IntHolder。

  四、 C#中的委托可以用JAVA中的反射invoke方法傳遞方法指針method完成。

  五、 不要使用protected修飾field因?yàn)檎麄€(gè)包內(nèi)都可以訪問,破壞了封裝性。

  六、 throwable接口的實(shí)現(xiàn)類有2個(gè)分支,一個(gè)是error,一般情況JAVA系統(tǒng)的內(nèi)部錯(cuò)誤或者資源耗盡,對(duì)于它,除了通知用戶錯(cuò)誤和讓用戶安全退出外別無他法。還有一個(gè)是exception,又分為Runtime Exception和非Runtime Exception。由于程序的錯(cuò)誤導(dǎo)致出現(xiàn)的異常稱為Runtime Exception,這種問題應(yīng)該在程序中解決和避免,不應(yīng)該拋出異常。而曾經(jīng)能夠正常運(yùn)行,在某些時(shí)候可能會(huì)出現(xiàn)導(dǎo)致的異常稱為非Runtime Exception,這種問題的解決應(yīng)該拋出異常。常見的Runtime Exception有類型轉(zhuǎn)換錯(cuò)誤、數(shù)組越界、空指針等。如果出現(xiàn)Runtime Exception就一定是你的問題。Error和Runtime Exception稱為未檢查異常。而非Runtime Exception稱為已檢查異常。

  七、 要使用精確的浮點(diǎn)運(yùn)算請(qǐng)使用Big Decimal。除法的時(shí)候注意使用小數(shù)位,否則會(huì)導(dǎo)致得不到精確值錯(cuò)誤。

  八、 建議不要在程序中使用char,因?yàn)閏har使用的是utf-16編碼。

  九、 三種處理錯(cuò)誤的機(jī)制:異常,日志和斷言。java默認(rèn)關(guān)閉使用斷言,想使用應(yīng)該在運(yùn)行的jvm參數(shù)中使用-ea。例如:int x= 5;要判斷x是否大于0可以使用assert x>0 : x;斷言不應(yīng)該使用在程序發(fā)生了可恢復(fù)性錯(cuò)誤。斷言只能用在開發(fā)和測(cè)試階段。是一種戰(zhàn)術(shù)性工具,而日志才是貫穿整個(gè)生命周期的策略性工具。

  十、 序列化除了能夠保存簡(jiǎn)單對(duì)象以外,對(duì)復(fù)雜對(duì)象也有很好的處理方式,比如如果在幾個(gè)對(duì)象共同引用一個(gè)共享對(duì)象時(shí),就不會(huì)把這個(gè)共享對(duì)象保存幾次,而是檢查是否已經(jīng)保存這個(gè)共享,如果沒有則保存,如果已經(jīng)保存,則保存一個(gè)該對(duì)象的序列號(hào)。

  十一、 泛型可以單獨(dú)在非泛型類中使用,例如下泛型方法:public static void test(T t){},而且泛型可以使用多個(gè)接口,例如:public statci void test(T t){}??梢允褂梅盒拖薅ǔ?,它與限定子類相反,例如:public class Pair,但是他可以向方法提供參數(shù),不能使用返回值。 一般的,帶有超類的泛型可以向?qū)ο髮懭?,帶有子類的泛型可以從?duì)象讀取,例如:public static> T min(T[] a){}。

  掌握真正的Java開發(fā)技術(shù),做高級(jí)Java開發(fā)工程師。另外,報(bào)班是比較快捷的學(xué)習(xí)方式,一步一步扎實(shí)掌握J(rèn)ava開發(fā)技術(shù),是找到高薪工作的重要法寶!

?為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要資料的歡迎加入學(xué)習(xí)交流群:9285,05736

?著作權(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)容