時間:2019-08-08 11:02:18 作者:johnnyl 瀏覽量:37
圖一 如何學好java
編程是一個日積月累的過程,付出的多,收獲的也就多。多動手敲代碼。不要只是看別人的。自己動手寫,代碼這東西,你少寫一點東西都會報錯。在學習初期一定要多想,多敲。
入門過后,多看一些別人的代碼,學習一些優(yōu)秀的設計模式。把代碼架構盡量寫的優(yōu)雅。后面的提升看你以后的發(fā)展路線,如果想走架構,就多看架構方面的資料,要走管理,就學學項目管理方面的。
圖二 如何學好java
一、付出努力是前提
前段時間996引起不小的風波,今日馬云先生的669又再次帶我開車兜了一回風。其實這背后折射出的道理都一樣,不論干什么,首先都要付出超過常人的努力,才能收獲幸福的果實,這是前提。除了努力,另外方向更加重要。
二、方向不對努力白費
走技術這條路線基本上薪資跟你的技術功底有很大的關系,這是發(fā)展的基礎。如果你要在技術這條路上一直發(fā)展下去,可以提早可以思考一下如何構建好屬于自己的一套基礎技術體系。牢固的基礎技術體系可以讓你對技術理解更加透徹,不僅知其然也能知其所以然。新出來的功能,框架或者中間件,你也能比旁人理解更加透徹。反映到工作實踐上,你能解決高難棘手的問題,或者提出非常優(yōu)秀的解決方案,理論結合實戰(zhàn)經驗,不斷提升你的整體水平,這些都會是非常寶貴的經驗,當然這些積累都會成為你的核心競爭力。你發(fā)展的平臺也更加廣闊,薪水自然也能比同齡人超出好幾倍。
圖三 如何學好java
在北上廣深,如果技術能力不錯,年薪60萬上百萬都沒有問題。反之, 隨著年齡增大,每天忙碌在無休止業(yè)務代碼中,年復一年,你將在競爭高端崗位的時候非常吃虧。高端崗位對基礎原理,理論以及重大項目的實踐經驗都是有很高的要求,如果你提早準備,這些都是可以逐漸積累,不至于后面追趕而感覺壓力倍增。
我身邊有一朋友工作將近10年,知識面其實非常廣,什么高并發(fā),分布式,中間件,性能優(yōu)化等知識點了解非常多,概念性的知識娓娓道來,但是不夠深入和系統性。后面想換高端崗位經常碰壁,被拒絕,非常尷尬。原因就是技能點了解很多,平時沒有歸納總結,技能都是散列狀的,不成體系,自問對那塊領域最了解,都模棱兩可,這個就非常尷尬了。
如何做到用正確的技術體系的學習呢? 舉一個簡單的例子:
(1) 剝筍第一層:
public class TestInteger {
public static void main(String[] args) {
Integer n1 = 1;
Integer n2= new Integer(1);
System.out.println(n1 == n2);
}
}
有一點基礎我們看出第一個就是自動裝箱,其實調用的是Integer.valueOf()方法.第二個直接在堆里生成一個對象。挺簡單是吧,我們再深入一點看看下面這段程序。
(2) 剝筍第二層:
public class TestInteger {
public static void main(String[] args) {
Integer n1 = 127;
Integer n2 = 127;
Integer n3 = 128;
Integer n4 = 128;
System.out.println(n1 == n2);
System.out.println(n3 == n4);
}
}
你覺得輸出結果會是什么呢?會不會是兩個True?
默認情況下輸出結果是:
Ture
False
因為Integer有一個內部靜態(tài)類IntegerCache,默認情況會緩存-128到127之間整數,超過這個范圍就會new Integer(n),重新生成一個對象。 然后結束了嗎? 好戲還在后面。我們把知識再延伸下。
(3) 剝筍第三層:
class Product {
//庫存數量
private Integer stock;
void subStock(Integer num){