概述android
學過一段時間的同窗必定會以爲Java學習最頭疼的不是語法結構的繁雜,而是Java自己體系結構的龐大。以致於本身不知道接下去該學什麼,或者什麼樣的知識才會對後續的學習有幫助。本節內容將讓你們對Java學習的路線有個宏觀的把握。在與市場接軌的前提下,咱們會推薦給各位同窗相關學習的方向和技術,以及學習到何種程度才能適應基本的工做。程序員
好多同窗可能會有以下的疑問:web
l 我已經學完JDBC了,那樣參加工做夠用了嗎?正則表達式
l Java SE學到什麼樣的程度算是OK了呢?數據庫
l 東西好多啊,我改怎麼學啊?我想作項目,不想學原理!編程
l 我把SSH都學完了,這樣出去能找到工做嗎?設計模式
l 我把SSH都學完了,那接下去我該學什麼呢?數組
l Android我到底要不要學呢?我看好多人都在學啊!安全
……服務器
下面的內容將會帶你理清這些甚至更多疑問。
1.1 Java學習整體方向
對於剛學習Java的同窗,應該瞭解下面這張圖1-1,瞭解Java學習的大體結構。固然你能在Oracle Java的主頁上看到還有如Java FX、Java DB這樣的技術。可是既然要和市場接軌,必然要有所取捨。
對於圖1-1,Java SE是咱們Java入門的開端,這塊內容也就是你們所熟悉的坦克大戰、聊天軟件、五子棋這些桌面級項目所組成的。學完了Java SE部分,接下來就該選擇方向了。
圖上標註的很明顯,但這裏有亮點須要提出:
1) 往分佈式方向並非必定要通過Java EE階段,可是,學習Java EE對後續分佈式的開發有莫大的好處。
2) Java ME雖然還在Oracle官網上屹立,但就市場來看,它的地位已經明顯不如android高了。因此從目前來看,沒有必要學習Java ME。
圖1-1 Java學習整體方向
1.2 Java SE中應該關注的內容
在這一節中,將列出Java SE的學習中應該關注的方面,以及這些方面裏主要涉及哪些核心內容。你們能夠根據本身的學習狀況,對照這些條目,看看有沒有缺漏的內容。在以前提到過如坦克大戰這樣的項目,這些確實能很好的涵蓋了大部分Java SE的內容,因此必要的項目是很關鍵的。
圖1-2 Java SE組織結構
如圖1-2所示, Java SE大體可分爲如下幾塊內容:
n 對象導論:如何用面向對象的思路來開發
n 深刻JVM:Java運行機制以及JVM原理
n 面向對象的特徵:封裝、繼承、抽象、多態
n 數組和容器:容器的線程安全問題
n I/O和NIO:NIO工做原理和應用
n 併發編程:concurrent包
n 網絡編程:TCP/IP+BIO/NIO UDP/IP+BIO/NIO
n JDBC框架和反射:JNDI、鏈接池、annotation等
n 其餘:正則表達式、字符串等
在這裏我還想多提一點,關於Java SE學到什麼深度才合適。其實對於後續學習Java EE或者是Android來講,Java SE你只要學會皮毛就足夠應付了,固然這裏的皮毛是要求你熟練Java語法結構和基本CRUD操做。
但是這樣真的又夠了麼?好多工做了一兩年的程序員確定又會慢慢懷疑本身的基礎是否足夠紮實,因而他們又拿出了《Thinking In Java》從新通讀一遍。基礎的重要性毋庸置疑,越到後面你越會以爲框架什麼的對你的提高幫助很小。而真正有用的仍是對Java的深刻理解。因此若是你正在擔憂你的Java基礎夠不夠,層次到沒到應該有的深度,那你應該先慶幸下,至少你還想着如何提升本身的水平。
在這一階段,你應該看看專門針對每一章節講解的書,好比:《Java Concurrency in Practice》、《Java NIO》、《深刻Java虛擬機》等。資料不少,可是須要你細細的去琢磨。
1.3 Java EE中該學點什麼
Java EE很雜,可是也很容易學,由於你作幾個網站大概就能把全部知識點串聯起來。因此Java EE方向說好聽點兒的叫企業級應用開發,說難聽點兒的其實就是作網站。固然並不侷限於作網站。
對於Java EE方向的學習,重點在於可以熟練的運用各類框架,以及掌握各類框架構成的核心思想。至於學什麼框架,用什麼應用服務器,在學習的時候能夠採用容易配置的,全部的同類服務都是相似的,精通了一個,類似的學習就很快了。
圖1-3 Java EE方向學習內容
下面來具體的看各個模塊應該學點兒什麼:
n 序列化:XML、JSON與Java之間的序列化和反序列化
n ORM:推薦學習Hibernate
n JSP/Servlet:能夠順帶着把JS學習了
n Spring:IOC、AOP、Spring MVC
n MVC:推薦學習Struts
n Web Service:JDK自帶web service、CXF等框架
n SOA:瞭解ESB、MQ等企業級應用架構。
n EJB:主要了解思路。可順帶着學習JBOSS
n 其餘:會使用JMS。瞭解JTA。
仍是一點,Java EE方向的學習主要是會熟練運用便可。大點兒的企業都會有本身的框架,技術含量大同小異。會用便可。固然到了這個階段設計模式的學習也必不可少,設計模式能夠穿插於各個框架中進行學習。
1.4 關於Java EE以後應該學點兒什麼
對於大多數企業來講,若是你能掌握上面提到的相關技術,而且熟悉SQL和Linux,那找個Java相關工做應該是沒有問題的了。若是你想更深刻的去應用上面所學的知識,分佈式、搜索引擎、大數據處理等互聯網熱門技術都是你擴寬技能的方向。
開源的Lucene是搜索引擎技術最好的入門,簡單易學,並且不少企業對搜索引擎的需求愈來愈大。
諸如MINA、Kafka這樣的開源框架,是你步入分佈式方向很好的基石。
若是你能瞭解HBase、Mongo這樣的非關係型數據庫,那就更有利於你思考大數據的問題。
技術是學不完的,並且更新的速度必定比你學習的速度還要快。因此瞭解市場需求,瞭解技術的核心理念尤其重要。至於這一階段能夠看什麼書,有以下推薦:《分佈式Java應用 基礎與實踐》、《Hadoop權威指南》等。
1.5 你還須要瞭解點什麼
學無止境,要想在計算機裏走的順利點兒,你真的須要不斷的學習。
固然有幾點我認爲在計算機學習中至關重要:
1) 學好英語:最好的資料每每都是英文的文檔。
2) 學好專業基礎課:數據結構、操做系統、網絡這些核心課程都是後續提升的基石。
3) 多關心技術發展。