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