1. 程式人生 > >學好Java必看內容

學好Java必看內容

首先先搞懂JavaSE的部分,Swing和swt部分就可以少看或不看,因為現在用的比較少。重點是看懂Java中的面向物件、集合框架、JDBC、異常、IO、執行緒和網路程式設計。JavaSE搞定後再學習Servlet、JSP,然後才是經典的Struts2、Hibernate和Spring,學習框架時重點理解框架的執行原理,甚至可以嘗試自己寫個輕量級的框架。理解執行原理的最好方法就是閱讀原始碼,還是要感謝Java中的開源專案。這期間還要多找各種大小的專案去完成,不一定要大,但是要精緻,功能要完整,這樣可以練習所學知識,並且可以在做專案中發現自己的知識體系中不足的地方。關於看視訊,我不推薦,很多同學一天到晚就知道看視訊,殊不知,程式設計真理在於“練習,練習,不停練習”!
再補充下:當學習Java的期間,會碰到各種各樣的異常,請積累這些異常資訊,以及如何出現的異常和如何處理的,因為java中常見的異常就那麼幾種,積累的多了,處理問題的能力就提高,這樣水平會提高的很快!
-----------------2015年1月5日修改---------------
這個答案最開始是11年回答的,不少留言的同學問現在這個答案是否還有效,答案是依然有效。因為這幾年的發展,從招聘的角度看,使用 Java 的IT 的公司對技術的要求變化不大,依然要求你有紮實的 JavaSE 功底,會使用常用的框架。
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 的口號,那也就是口號而已,別太認真。這條路沒有捷徑,寫你的程式碼就是了!
暫時就這麼多,有問題的可以留言!感謝大家捧場!
(利益相關,我是Java 培訓師)
------------------2016年6月29日更新推薦書單-------------------------------
Java基礎部分

JAVA核心技術(卷1) (豆瓣)

Head First Java (豆瓣)

重構 (豆瓣)

Effective java 中文版(第2版) (豆瓣)

Head First 設計模式(中文版) (豆瓣)

嚴重不推薦《Java程式設計思想》,這句話一出,估計很多人會噴死我,因為這本書被很多人奉為Java中的聖經級的書籍。但是我真的想問問這些人,你們真的看過這本書嗎?真的適合初學者去看嗎?多少初學者就是看了這本書做到了從入門到放棄的過程。所以,我的觀點是,有一定Java開發經驗了再看這聖經

資料庫部分

MySQL必知必會 (豆瓣)

JSP和Servlet部分

Head First Servlets & JSP(中文版) (豆瓣)

HTTP權威指南 (豆瓣)

圖解HTTP (豆瓣)

框架部分

Spring實戰(第3版) (豆瓣)

Spring技術內幕 (豆瓣)

Java Persistence with MyBatis 3 (豆瓣)

深入淺出Hibernate (豆瓣) 雖然老,但是經典

Struts 2實戰 (豆瓣)

Android

Android程式設計權威指南(第2版) (豆瓣)

其他

Redis實戰 (豆瓣)

Redis設計與實現 (豆瓣)

Redis入門指南 (豆瓣)