科班和非科班都適用的 Java 學習路線

不少面試官在基礎考察的時候都是直接是根據書來問,由於這些面試官也是從學生時代過來的,而他們可能和你看的是同一本書。也就是若是你和麪試官的知識體系結構同樣的話,面試官問出來的問題,你天然能夠回答得很好。下面是書籍推薦:java

00 推薦 《head first Java》

head first系列一直口碑不錯,這本書更是適合java入門,先看完這本書,而後看下面的這些。
或者看《瘋狂java講義》,二者選一本入門便可linux

01 java基礎

java核心卷I:java核心卷II能夠買也能夠不買。java核心卷I只看前9章,其餘不用看。身邊同窗都認爲這本書不適合初學者,可是若是你以前看過java學習視頻,那麼這本書很適合你。這本書主要讓你對java知識有個系統的學習,創建起本身的知識體系結構。系統的體系結構在求職面試顯得尤其主要,不只僅是指java基礎。因此你們必定要學會總結,零散的知識碎片對面試十分不利。程序員

02 多線程、併發

實戰java高併發程序設計和java併發編程的藝術:java高併發程序設計,這本書主要是爲了看第二本書作鋪墊,直接看第二本書可能會很吃力。實戰java高併發程序設計主要看:前4章、5.一、5.二、5.三、5.十、5.11和第6章。第二本書「java併發編程的藝術」除了6.4和10.4相對不是重點,其他每一章都是考點、每一章都是,記住這句話。6.4和10.4建議看一下,不是重點,可是建議看。你們記住併發編程的藝術是重點,基本上上面提到的那些章都是重點。面試

另外,你們自行找博客補充下協程的概念,公衆號後面也會有講解。近期各大公司都有研究使用協程,面試大機率會問到。協程其實就是單線程裏面實現多任務調度,由於是單線程,因此不用鎖,天然沒有鎖的競爭那些問題,效率更高。你們能夠去了解下,大機率會被問到。併發編程的藝術可能看第一遍可能迷迷糊糊,都不知道到底講了什麼,這本書斷斷續續可能要看三遍或者以上,因此一遍看不懂不要灰心,由於你們都這樣。算法

03 java虛擬機

深刻理解Java虛擬機:只要看:第2章、第3章、第4章、第5章簡單看一看、第六章看6.1和6.二、第7章以及第12和13章。12和13屬於併發裏面的補充。上面這些都是重點,面試的典型問題,包括以前講過的GC,內存模型、調優、經常使用命令、類加載、OOM和stackOverflow等。還有就是對象的生命週期一些,這本書大可能是記憶類的,你們多多總結,多翻幾遍~spring

04 數據結構

大話數據結構:這本書通俗易懂,第5章能夠不看,其他建議看。第五章,怎麼說呢,我和周圍同窗面試都沒被問到過KMP算法,筆試中可能會遇到,可是KMP算法能夠解決的問題DP大機率也能夠解決,並且KMP算法不簡單,對本身要求高的同窗能夠看看。第七章圖,圖在面試中基本不會問,可是在筆試中大機率會碰到,因此還得看。可是放心面試中幾乎不多問到圖的。數據庫

若是以爲這是C的能夠看 《算法》第四版編程

有了java基礎和數據結構基礎,應該去刷題,推薦《劍指offer》和《程序員代碼面試指南-IT名企算法與數據結構題目最優解》ubuntu

05 設計模式

Head First設計模式:建議看前13章,第13章實際是講MVC模式,這個也要掌握,附錄中的模式不想看就別看了。這本書「廢話」比較多,圖文也很詳細,每一種設計模式都有具體的案例,能夠幫助你更好的理解設計模式。windows

學習完一種設計模式後,最好可以找到JDK或者Spring或其餘框架源碼中的應用,這有助於理解,加深記憶;更重要的是,若是面試官在問你設計模式的時候,你能詳細說出幾種經常使用的設計模式,而且給出在JDK或spring或其餘框架源碼中的應用,以及該模式解決了什麼問題之類的,這確定是加分項,面試官會認爲你知識體系結構很完善,對你的印象確定更加深入。

常問的設計模式問題有:單例、適配器、裝飾者、代理、組合、策略、模板方法、觀察者、工廠方法。這幾種是重點,其餘的模式依舊建議看看,即前13章都建議看。百度面試曾經問過一個問題:裝飾者模式、靜態代理和動態代理模式的異同;爲何spring的AOP不使用裝飾者模式實現等問題。再次強調一點,上面提到的每一種模式必須可以舉出一兩種應用場景,即JDK、Spring或者其餘框架源碼的那個地方應用了這些設計模式,而且要能手寫出代碼實現。百度面試就是這麼問的,必定要能舉出案例,也問過手寫觀察者模式;也有不少公司要求在草稿紙上畫出各個設計模式的UML圖,這個也但願你們掌握,但願引發你們重視。

06 分佈式

分佈式屬於進階,能夠放到最後再看,其它是基礎,必看!

從Paxos到Zookeeper分佈式一致性原理與實踐:第1章、第2章,第4章,第五章,第6章,7.1節、7.4節、7.5節,7.6節、7.7節、7.9節,8,4節,8,5節。書名比較長,這本書很重要,由於如今的網站都是分佈式,高可用(一臺機器壞了會自動由另一臺機器對外提供服務)、分佈式鎖、分佈式隊列等等一些相關功能均可以使用zookeeper實現。另外,zookeeper在不少框架中的不少:HBASE、Hadoop、kafka、YARN等等(後面這些框架只是舉例)。

在前一篇文章中曾提到過,在項目相關面試問題中,面試官有很大機率會把你的項目往分佈式上面延展,而zookeeper能夠解決大部分的分佈式問題,互聯網公司用的也不少。

zookeeper重點掌握:兩階段、三階段提交、Paxos算法、zookeeper的應用場景(很是很是主要,第六章)、leader選舉、watcher機制(最好讀一下watcher機制的源碼,公衆號後面也會有講解)。第五章是告訴你怎麼使用zookeeper的,zookeeper有哪些用途,雖然面試不會直接考,可是必須得看,不然你學了zookeeper,你還不知道zookeeper是怎麼使用的.....這裏的意思是,第五章的那些API你不要去記也不必,你只要知道它有這麼個用途,能決絕什麼問題就能夠了,具體的API說個名字或者名字說不出來也不要緊,面試官通常不會糾結與API的名字,更想提到你對某個知識點本身的理解。第五章那些知識點多是你項目面試問題的答案,由於zookeeper應用場景不少,可是往大了說就幾個大類場景,看數必定要學會本身總結,本身總結的印象更深入。第五章大概看看瀏覽就好,最好跟着打一個zookeeper集羣,本身親手操做一下,也不難。

07 數據庫

數據庫只須要學:MySQL、Redis,對大數據有了解的建議看看HBASE(使用了zookeeper),其餘數據庫不要學。《MySql必知必會》用來入門,進階MySQL推薦「高性能MySQL」,注意這本書好像並不適合初學者,建議先看MySQL視頻。Redis看完視頻後建議看看博客,Redis主要問:經常使用數據結構、集羣、哨兵、用在哪些場合、解決了什麼問題、持久化AOF和RDB。最後,簡單的SQL必定要會,面試也有讓手寫簡單的SQL,就SQL立案表層查詢那些。

《Redis設計與實現》用來學習Redis.

08 書籍推薦補充

linux:「鳥哥的linux私房菜(基礎學習篇)」。這本書口碑很好,適合初學者,通俗易懂。linux主要考察經常使用命令、文件權限、虛擬內存、軟硬連接等等。在講解這本書應該看哪幾章以前,強烈建議讀者本身安裝一個linux虛擬機,教程的話找度娘:「ubuntu 虛擬機安裝」或「centos虛擬機安裝」,搜索上面那兩個關鍵詞便可。初學者推薦centos,由於推薦的那本書上是按照centos系統講解的,因此安裝centos能夠給初學者減小一些沒必要要的麻煩。安裝linux虛擬機的時候可能會看到教程講解配置虛擬機內存分區之類的,其實默認值就足夠了,至少你不該該花費不少時間在糾結分區數量和分區大小上。網絡上虛擬機安裝的教程網絡不少,也很簡單。安裝以後,再看書或者先看看書的第0、一、2章。至於第三章分區能夠看看,可是安裝虛擬機的時候使用默認值分區配置就好~,初學者沒必要在上面糾結。

書的話主要看:第0,1,2,3章隨便翻一翻、第5章是最基本使用命令、第6章權限是考察重點、第7章、第8章(ext文件系統瞭解便可,關注下磁盤經常使用命令)、第9章、第10和11章建議看、20.1小節能夠看看,其餘沒提到的部分能夠不看~

另外看書最好要結合linux虛擬機,看書的時候,本身跟着一塊兒敲一遍命令,這樣會更加深入,也可以很直觀看到命令的做用。其實linux系統和windows系統同樣,你們不要畏懼,用多了就行了啊,剛剛開始確定不太熟練,不用太擔憂,主要是要多用,多動手操做。

計算機網絡:「計算機網絡(謝希仁)」。計算機網絡最多見問題:OSI七層模型,每層幹嗎的或者五層協議棧每層做用、TCP和UDP的區別、擁塞控制和流量控制、TCP三次握手和四次揮手等。書的話,博主看的是第六版,因此就按照這個版原本推薦看哪些章節:前六章建議都看。第一章1.7是重點,其餘的做爲了解,預備知識,隨便翻一翻,有個瞭解就好。第二章:2.一、2.二、2.4建議看,2.6做爲補充就好。第三章:看前三節、後面兩節能夠不看。第四章:看前五小節和4.7小節。整個第五章都須要看,重點。 第六章:從6.1開始,看完6.4.3以及6.6,第六章主要是應用層協議,協議比較多,建議都翻一下,瞭解協議大體的用途功能就行了。

操做系統:博主是通訊專業,沒有特地去看操做系統的書,身邊同窗也沒有特地去看的。面試問到相關的就坦然說本身對操做系統不是很熟,另外就是能夠上網上找面經,操做系統常問的面試題,而後找到答案,本身弄懂就行了。書籍的話,周圍師兄和同窗推薦「深刻理解計算機操做系統」或「現代操做系統」這兩本書,書都很厚,博主當時實在看不過來,並且當時身邊同窗也都沒看這兩本書,主要是要學的東西實在太多了,並且操做系統的書都很厚.....

基於上面兩點,博主和身邊的小夥伴們都沒有專門去看操做系統相關的書。因此呢,也就給不了大家太多意見了,操做系統重不重要?確定重要,面試必問。要不要看?建議看,不鼓勵博主這種冒險行爲。

9 框架

《SpringMVC學習指南》:此書講解了使用Springmvc部分的方法,和裏面組件的使用方法等。對於初步的對SpringMVC的使用時頗有幫助的。

《看透SpringMVC》:此書是我SpringMVC源碼時的輔助書籍,書裏講解了做者讀源碼的一些心得,對於新手讀源碼有必定的幫助。畢竟一開始讀源碼都以爲很難,此書陪你走過這第一道難關,之後讀源碼就沒有那麼畏難了。

《Spring技術內幕》:師兄推薦的,我沒讀完,讀着被繞進去了,並且此書是根據3.x的源碼講解的,如今Spring早已經更新到了5.x了,不少地方都已經變了,期待做者再版啊。

出自:
https://mp.weixin.qq.com/s/wT...

少部分由我進行添加和潤色

以爲文章不錯的歡迎關注個人WX公衆號: 程序員喬戈裏
我是 百度後臺開發工程師,哈工大計算機本碩,專一分享技術乾貨/編程資源/求職面試/成長感悟等,關注送3000G編程資源,免費下載CSDN資源。

相關文章
相關標籤/搜索