本文目錄一覽:
java入門到精通學完後看什麼書
覺得很多經典的java書籍並不適合初學者,如《Thinking in Java》、《JAVA核心技術》,因為他們太細緻了,你只會越看越亂,分不清主次。
建議先從國內很多評價較好的大學教材開始看,雖然是中國人寫的,雖然很粗糙,但是至少能把java的大概框架展示給你,一些基本的語法你也可以簡單熟悉下。再做做書後很簡單的習題,主要是起到鞏固的作用,不要看過就忘。
等讀完一本這樣的書,對java有了概念之後,可以回過頭來去看國外的經典。這時候的細節才是補充之前國內教材的粗糙處,你理解起來不會太難,同時也不至於陷入無邊無際的細節裡面,迷失了自我。
看熟一兩本經典之後,你對J2SE應該已經比較熟悉了,之後是轉J2EE還是J2ME就看你自己的愛好了。按現在的行情來看,還是J2EE好一些,就是做web開發的。當然這時候就要再去學其他優秀的開源框架了,如著名的SSH(struts+spring+hibernate),最好在學一門腳本語言(ruby、python、js、php隨便一個,主要是理解腳本語言的精髓,語法都是浮雲),然後找個好工作應該沒什麼問題。
這個路線就是進外包公司、銀行軟開、IBM、互聯網公司了。自學難度較大,參加JAVA戰狼班培訓。
java學習路線
目前在職Java開發,我給出的Java學習路線是:
JavaSE–資料庫–jdbc—-前端基礎–Javaweb–Spring–Mybatis–Maven–Springboot—Reids–Springcloud–Linux–Git。
JavaSE:java基礎,既然是基礎,那肯定是最重要的,所以學習的時候也是需要重點學習的地方。
資料庫:為什麼要學資料庫呢,因為我們的web數據需要持久化到磁碟上統一管理,而資料庫無疑就是最好工具。目前主流的關係型資料庫有mysql 和oracle。我建議先學mysql。為什麼呢mysql相比Oracle難度要低,而在國內應用場景又是最多的。
學會了mysql可以開發出一個完整的產品了,再學oracle都可以的。
前端基礎:既然是做一個網站,那肯定不能是後台的數據,這樣用戶也是沒辦法看的,所以需要學習前端知識,把數據展示到頁面上,而對於後台人員來說,學習階段只需要學習前端基礎就可以了。Html 、js、css、jquery就可以了。當然到離開後期你也可以學學專門為後端人員定製的前端框架,比如,layui,easyui。如果還覺得不夠可以學學前端專用框架。比如vue element ,但是大前提是把自己的後台學到位了再學其他的。
Javaweb:jsp、servlet。為什麼用了html還要學jsp呢。因為jsp和Java是無縫連接的。學了javaweb以後就可以自己做一個項目出來了,比如你想做一個個人網站。你可以給你們學校做一個教務管理系統都是可以的。
Spring:後台框架。為什麼要用框架呢,可以快速開發,並且降低了耦合。Spring的AOP支持允許將一些通用任務如安全、事務、日誌等進行集中式管理,從而提供了更好的復用,Spring的ORM和DAO提供了與第三方持久層框架的良好整合,並簡化了底層的資料庫訪問。
Mybatis:持久層框架,當然持久層還有一個框架應用也很廣的,那就是hibernate,一個是半自動的一個是全自動,而在國內應用最多的是mybatis,在國外用得最多的是hibernate,具體原因,大家可以百度查查。持久層框架有什麼好處呢?如果你用原始的jdbc做開發,那你得自己來管理每一個連接,連接的打開和關閉,都是有開發人員來操作的,而且jdbc也沒有實體的映射,需要我們寫代碼把值set進去,而用了框架這些都交給框架去做了。
Maven:mavne是一個工具,他的核心是pom.xml,這個配置文件,pom的全英文是project object model,意思是對象管理模型,也就是把項目也看成一個對象來操作了。給我們帶來最直觀的好處就是依賴問題,以前我們需要自己下載jar包,在構建到項目中,但是有了maven只需要寫jar的依賴就可以自動給我們下載了。
Springboot:springboot是基於maven的,springboot最明顯的特點就是開箱即用,也就是構建了一個springboot項目 直接就可以做開發了,而不需要像我們自己配一個springmvc的框架一樣的需要去配置大量的xml文件。讓我們開發人員更著重於業務上的開發。
Redis:前面的mysql,oracle是關係型資料庫,什麼是關係型呢,就是一對一 一對多 多對多。有表與表之間有這些關係在,所以就叫關係型資料庫,而redis就是非關係型資料庫,也就是他存儲數據之間是沒有這些關係,他是以鍵值對 list set方式存儲的。
對了,順便在這裡說一下,我目前是在職Java開發,如果你現在也在學習Java,了解Java,渴望成為一名合格的Java開發工程師,在入門學習Java的過程當中缺乏基礎入門的視頻教程,你都可以申請加入我的Java新手學習交流qun:前面輸入是:前面輸入是:七九八,中間輸入是:八四四,最後輸入是:六二零。裡面聚集了很多正在學習Java技術的初學者,qun文件裡面還有我做Java技術這段時間整理的一些學習手冊,面試題,開發工具,PDF文檔書籍教程,需要的話都可以來獲取下載。
Springcloud:微服務框架,什麼是微服務呢,就是把我們傳統的單體服務拆分開了,就是將一個單體架構的應用按業務劃分為一個個的獨立運行的程序即服務,微服務架構其實就是一個分散式架構,具體的就不詳細的講了,因為這裡面牽涉到的解決方案是靈活的。
Linux:linux的應用通常都是在底層,那我們上層開發人員為什麼也要學它呢,其實我們的主要應用是在伺服器上,也就是伺服器的系統。當然系統也有Windows的,而Windows的和Linux的區別就是Windows伺服器有問題是微軟來解決,很方便:別人替你做,但也不方便:你遇到問題都得讓他官方來解決漏洞,但是Linux就不一樣,他是完全開源的,有問題自己馬上就可以解決,只要開發人員能力夠硬去改內核都是可以的。
Git:版本管理工具,與之對應的還有svn,最大的區別在於git是分散式系統,而svn不是分散式的,因為你們進企業以後都是協同開發 也就是一個項目小組裡面幾個小夥伴一起開發一個項目,所以就要有一個代碼的管理工具來保證你們做的不同模塊可以整合,所以說git也是需要學的。
學習Java的最佳路線
首先先搞懂JavaSE的部分,Swing和swt部分就可以少看或不看,因為現在用的比較少。重點是看懂Java中的面向對象、集合框架、JDBC、異常、IO、線程和網路編程。JavaSE搞定後再學習Servlet、JSP,然後才是經典的Struts2、Hibernate和Spring,學習框架時重點理解框架的運行原理,甚至可以嘗試自己寫個輕量級的框架。理解運行原理的最好方法就是閱讀源代碼,還是要感謝Java中的開源項目。這期間還要多找各種大小的項目去完成,不一定要大,但是要精緻,功能要完整,這樣可以練習所學知識,並且可以在做項目中發現自己的知識體系中不足的地方。關於看視頻,我不推薦,很多同學一天到晚就知道看視頻,殊不知,編程真理在於「練習,練習,不停練習」!
推薦看看這個學習路線,規劃的很棒:
再補充下:當學習Java的期間,會碰到各種各樣的異常,請積累這些異常信息,以及如何出現的異常和如何處理的,因為java中常見的異常就那麼幾種,積累的多了,處理問題的能力就提高,這樣水平會提高的很快!
SpringMVC 這幾年的佔有率迅速的提高,可能之後會取代 Struts2,但是無論怎麼變化,這些還都是 MVC 模式,理解了這個模式,上手任何的MVC框架都應該很快。
企業需要的變化還體現在大數據方面,因為 Hadoop 的流行,Java 的應用場景又多了一個。所以,不喜歡 web 的可以考慮學習大數據方面的知識。
另一個流行的場景自然就是 Android,學習 Android 依然需要你有 JavaSE 的底子+HTTP 協議的理解,再配合上 Linux 的知識就可以開始了。
再說下找項目的問題,初學者可能會碰到不知道做什麼的問題,其實最開始大家都是從模仿開始的,例如你學會了 jsp+Servlet,那就可以模仿一個 v2ex 這樣的論壇出來。學會了 SpringMVC,那就試著將論壇的代碼重構,提供restful介面供客戶端訪問(Android、IOS 、web 等)。論壇做的沒難度了,那就模仿一個團購網站,依然是不一定要做全部的功能,但是做出的功能要穩定,要精緻。或者一個微信公眾平台的開發都是不錯的項目。
初學者看源代碼有的人推薦看 Struts2、spring 的,但是我相信10個初學者9個看不懂,那就從簡單的開始,例如 Apache 的 Commons 庫,例如 lang、dbutils、io 等,這些都是非常不錯的代碼,類的數量不多而且質量也不錯,這些看懂之後,你的基礎水平增長的不是一點點。
再次提醒初學者,學習編程沒有你想的那麼簡單,必須要多練習,多思考,最主要的是你對這個有興趣。現在不少網站和媒體都宣傳1個月學會前端、3個月入職 BAT 的口號,那也就是口號而已,別太認真。這條路沒有捷徑,寫你的代碼就是了!
原創文章,作者:HKTI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/140014.html