-
1 # 傳智教育官方賬號
-
2 # 火柴HONG
在我來說下學習java的方法:1.概念能看懂就可以,程式碼如果覺得不會的一定要練習,抄寫2遍是保底的。2.練習或者作業能做幾個是幾個,我們把重點放在程式碼上。程式設計思路最重要,思路是建立在熟練的基礎上。我們每天在學習新的東西就是在學習思路。3.自己每天在進步就是好的,保證書本程式碼能看懂。練習可以不關注。4.程式設計先找基本語法的書或者影片,先把基本語法學會,然後就是看程式設計思想這類的,然後再返回去看語法的書。5.看完影片或者書本上的影片都做好筆記,哪裡懂哪裡不懂,百度看一下再到群裡問人。6.第一次學語法是為了熟悉基本的操作,至少書上說什麼自己知道,第二次學語法是為了結合理論指導為什麼要那麼操作,然後基本上就是這個螺旋上升的一個方式了,到了一定程度,Java要開始接觸資料庫原理了。Java學了幾天後從入門到放棄的多的是。所以慢慢來。剛開始推薦看一看百戰高琪老師的java300集影片教程
-
3 # 開發經驗分享
首先說一下個人理解的學透: 任何需求你提出來,都可以用java來實現。
那怎麼學透呢?
第一種方法就是把java虛擬機器實現一遍,顯然這種方法並不現實;
第二種方法就是把java的所有知識點都學完,然後親自實踐,這樣只能做到學完java的程度。
要想學透,需要練就程式碼駕馭能力,也就是所謂的架構,為什麼要做架構呢,就好像蓋樓,如果沒有架構,只是每天有1塊磚就砌一塊,不久就可能被塌下來的磚砸死,因此學透並不是像想象中那麼簡單,因為現實中的需求千變萬化,需要積累經驗,或者跟著牛人一起工作,這樣可以快速提升自己解決問題的能力。
-
4 # 銀河系喵喵
根據水平,基礎是否打好,定義,寫法等等。然後實際操作例子,有的書帶例子,模仿著寫一下簡單程式,跑通。這樣就不只是浮在那些表面的理論上了,而且也大約知道自己的漏洞在哪,找一本java的書,再細細的看一遍。過程是來回的,熟練就好了,加油!
-
5 # 小和平鴿66
只學Java一輩子都不可能把Java學透徹。說得難聽一點,如果你知道Java有多傻X的時候你就開始有些入門了。
好吧,文明一點說吧,就是你首先得知道世界不只是Java定義的樣子,你才有可能知道Java定義的世界到底好在哪裡,又不好在哪裡。所以你要做的就是儘可能多的學會各種非Java系的語言,然後再回來看Java,才有可能稍微多明白一點。
舉個最簡單的,Java裡面面向物件應該算是他家的招牌菜了吧?但是Java並沒有負責任的告訴你面向物件到底是在做什麼?所以如果你去學了Ruby的物件,你去學了Golang的物件,或者也許你至少看過一眼 Perl 5在當年剛開始加入物件技術的時候是怎麼實現的,或者 Common Lisp 當年為什麼認為壓根兒就不需要面向物件這麼複雜的東西,或者你至少去看過一眼 Smalltalk 認為面向物件其實還是很有必要的………… 然後你再回頭過來看 Java,你會發現 Java的面向物件和他們都是不一樣的。(我這裡並不是在誇Java)。
但是話說回來,語言是一回事,工程又是另一回事。所以當你聽到 Twitter 把它們的 Ruby程式用Java重寫了一遍,然後整體效率提高了若干倍。當你聽到囂張了若干年的 Python程式猿越來越多的迴歸到Java,Go,Rust之類的編譯型語言了。當你聽到這些話題的時候不再是把它們當成笑話,或者談資,而是點點頭,表示能聽懂他們在說什麼了,你就基本上算是入門了。
-
6 # AI君
java的整體生態和積累實在是太大了。95年至今20多年的積累,幾乎涉及到計算機軟硬體的方方面面。我暫且就認為,提主所說的精通,是指jdk本身和一些必要的資料結構以及常用框架和麵向物件的基本思想吧。
從11年初至今,一直在學習java相關的知識。其中也走了不少彎路。按自己的積累,給出提主一個自認為合理且有一定深度的學習路線。大致分下面幾個階段吧。
1.首先應儘可能的打牢基礎的資料結構和簡單的演算法基礎。
可以去快速的學習一些簡單的小型系統,來滿足軟體學習的興趣和初期成就感。但,一定要回過頭,仔細的鞏固資料結構基礎和簡單演算法。類似於這種書就可以。
2.熟練使用Java類庫和java第三方工具框架。
學習使用java的語法,嘗試理解Java語法設計的邏輯。熟練掌握jdk類庫本身,以及各種第三方類庫工具包和第三方框架的簡單使用。這裡學習的同時,推薦看看《設計模式》,《程式碼整潔之道》,《spring原始碼解讀》,《Spring揭秘》等這一類的書集。
3.理解學習jdk類庫本身的應用原始碼實現和主流第三方框架的原始碼和架構設計。
比如jdk本身的資料結構二叉樹,紅黑樹,treemap,以及非同步包的unsafe,同步阻塞佇列,call-future等等包原始碼,以及執行緒基礎類的實現,各個類庫設計的結構和設計模式。吃透第三方框架的設計思想,理解學習第三方框架的核心原始碼。
當然,這裡面可能會涉及到其他的事務,分散式協議等,這裡不再展開。這個過程並非一朝一夕,可能需要大量的時間和技術感悟。當然,《設計模式》,《程式碼整潔之道》,《spring原始碼解讀與設計詳析》,《Spring揭秘》等等這一大類書,在這個過程可以理解大差不差了。
4.理解jdk,jre即jvm原理和實現。
這裡我推薦看下葛老師的《實戰java虛擬機器》,裡面講解比較偏實操。容易上手理解。
首先,可以從jdk自帶的工具學習來入手。
比如:jstat,jmap,jstack,jps,jdb.......甚至還有直接可以窺視執行期間實際記憶體資料的HSDB。當然,作為學習初步,我們只需要理解常用的幾個命令,並知道其代表的意義即可。畢竟,第三方監控工具,包括jdk本身也提供了3個視覺化的監控。
其次,理解jvm的執行載入原理,搞懂class檔案結構。
這個過程我們可以藉助之前會用的監控工具,理解jvm載入的基本原理。可以參考官方各個版本的jvm標準,學習看懂class檔案。在此基礎上可以使用如classpy等工具,方便我們直接閱讀class檔案。也可以試試支援class位元組碼級別的單步除錯工具。甚至,可以嘗試用用jvm彙編編碼工具。
接下來,理解jvm的垃圾回收機制發展歷史和各個主流垃圾回收器的工作原理。
這個過程其實非常複雜。垃圾回收器有各種序列,並行,新聲代/swap和老年代,以及回收警戒線,full觸發條件,各種個樣的基本引數和不怎麼用的超引數,以及G1的H區,ZGC等等。。。還好的是,GC並不屬於jvm官方規範的一部分。
然後,動手做一些jvm的實踐和實戰,
比如,jvm常見的故障排查和故障總結,效能調優,熱載入,class位元組碼的動態操作,asm等。
最後,可以嘗試實現自己的jvm。(當然這個步驟,對很多同學來說不是必須了)
這裡我推薦幾本書,也是徹底搞懂jvm規範的學習路徑。最好自己實現垃圾回收器。
周老師的《深入理解Java虛擬機器》。
接下來是《深入嵌入式java虛擬機器》和配套原始碼。這個cldc的jvm原始碼只有1M多。目前在oracle的官網上,仍然可以下載。是一個設計非常精簡的jvm實現。
接下來,可以去閱讀《自己動手寫java 虛擬機器》。這本書的jvm實現是採用go語言編寫。當然其中也有很多設計並不是非常合理。但基本都遵循了jvm規範。
這個時候就可以去看看github上各種jvm的開源實現了。有go,scalajvm,javainjava,ajvm,python-jvm,lua,各個版本各個不同的jvm實現。
當然,這些實現都只是基本原理。
後面推薦你去看《實戰hotspot》豹子書,關注高階語言虛擬機器的圈子。
當然,垃圾回收的書籍比較少,這裡還是推薦給你垃圾回收的經典書《The Garbage Collection Cookbook》。實際上對新的垃圾回收演算法有興趣,可以去知乎搜尋相關的論文和GC演算法開源實現的demo。
5.當然,我的建議只是針對Java本身。
真正要達到完全學好java生態,軟體工程,計算機網路,大資料基礎知識,mahuot,sparklib,分散式搜尋架構,各種訊息中介軟體,快取中介軟體,資料庫,DNS/CDN。。。。。這些都是做網際網路應用,避無可避的。
只能建議,通用知識熟練,鑽研方向精通,相關生態瞭解。
-
7 # 逆著書本的光
透徹沒人敢說自己JAVA透徹了吧,但是基礎的那些關鍵字用處和語法基礎必須透徹,然後選定一個方向深耕,JAVA當前使用最多的方向應該伺服器web最流行也是最廣泛了。當還有其它awt/swing,客戶端Android等。
回覆列表
Java學的透徹,首先要了解企業對中級Java人才的要求是什麼?
企業對於Java人才的要求需要至少積累2個企業級的大型專案經驗!
想要學習Java,可以看看2020年Java全新學習路線圖:
第一階段:Java語言入門
第二階段:Java語言進階
第三階段:Javaweb
第四階段:框架階段一
第五階段:專案實戰一
第六階段:框架階段二
第七階段:專案實戰二
第八階段:專案實戰三