首先,我個人比較推崇的學習方法是:先學java前端,也就是HTML,css,js,因為學習java以後肯定是往java ee方向發展的,學習完前端,在學習後端很多東西比計較容易理解!
其中J2SE是關鍵,如果學好了java se 部分,基礎紮實了,後面進階學習也比較輕鬆!
補充說明一下:我覺得學習java比較合適的方法是先把所有的知識點過一遍,然後把所有的知識點串起來,邊做開發邊補充,就像寫文章一樣,先寫好框架,然後再去潤色填充。因為前期在學習的時候你不知道用在哪裡,不知道用途,沒有學習的目的,所以很多概念就很難理解,時間久了也容易遺忘。但是如果你直接從實踐開始學習,很多知識點都充串聯起來了,而且會印象深刻,當然前提條件是你已經入門,已經能寫一些簡單的程式,我個人現在也是按照這個方式在學習了,感覺很有效。
說明:本文介紹的內容過於詳盡,這裡我補充一些基本的學習路線,相對比較簡略,但是比較可行:
基礎語法。也就是我們常說,各種程式語言都有的部分,資料型別,陣列,for迴圈,do-while,switch……等等,是學習任何程式語言的基礎,很關鍵;
面對物件:①類和物件;②Java的三大特性(封裝、繼承、多型);
工具類:①異常和異常處理;②集合框架(主要是List和Map);
常用的流(stream):①輸入流;②輸出流;③緩衝流;
網路與執行緒:①Socket ; ②多執行緒(Thread,Runnable);
資料操作:①Mysql、Oracle; ②JDBC;
web基礎:①Html/css;②Javascript;③JQuery;
框架。
只要學會上面的前7條,基本上從前臺到後臺開發常見的應用還是沒太大問題的,當然學習了框架以後,那就最好了,但關鍵還是要學好基礎,說實話,像下面這個表格中所列的知識點,真正能全面掌握還是有難度的,所以凡事還是要踏踏實實的靜下心學習,不要只看學習的進度,要看學習的效果。
第一階段技術名稱技術內容
J2SE(java基礎部分)java開發前奏計算機基本原理,Java語言發展簡史以及開發環境的搭建,體驗Java程式的開發,環境變數的設定,程式的執行過程,相關反編譯工具介紹,java開發工具Eclipse的安裝和使用,javadoc的說明。
Java基礎語法Java語法格式,常量和變數,變數的作用域,方法和方法的過載,運算子,程式流程控制,陣列和運算元組的類,對陣列迴圈遍歷以及針對陣列的常用查詢、排序演算法原理,最後使用Java程式進行功能實現。
物件導向程式設計理解物件的本質,以及物件導向,類與物件之間的關係,如何用物件導向的思想分析和解決顯示生活中的問題,並java程式的手段編寫出來。
如何設計類,設計類的基本原則,類的例項化過程,類元素:建構函式、this關鍵字、方法和方法的引數傳遞過程、static關鍵字、內部類,Java的垃圾物件回收機制。
物件的三大特性:封裝、繼承和多型。子類物件的例項化過程、方法的重寫和過載、final關鍵字、抽象類、介面、繼承的優點和缺點。
物件的多型性:子類和父類之間的轉換、父類指向子類的引用、抽象類和介面在多型中的應用、多型優點。常用設計模式如單利、模版等模式。什麼是異常 異常的捕捉和丟擲 異常捕捉的原則 finally的使用,package的應用 import關鍵字。
多執行緒應用多執行緒的概念,如何在程式中建立多執行緒(Thread、Runnable),執行緒安全問題,執行緒的同步,執行緒之間的通訊、死鎖問題的剖析。
javaAPI詳解JavaAPI介紹、String和StringBuffer、各種基本資料型別包裝類,System和Runtime類,Date和DateFomat類等。
常用的集合類使用如下:Java Collections Framework:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合類API。
IO技術什麼是IO,File及相關類,位元組流InputStream和OutputStream,字元流Reader和Writer,以及相應緩衝流和管道流,位元組和字元的轉化流,包裝流,以及常用包裝類使用,分析java的IO效能。
網路程式設計Java網路程式設計,網路通訊底層協議TCP/UDP/IP,Socket程式設計。網路通訊常用應用層協議簡介:HTTP、FTP等,以及WEB伺服器的工作原理。
java高階特性遞迴程式,Java的高階特性:反射、代理和泛型、列舉、Java正規表示式API詳解及其應用。
第二階段技術名稱技術內容
資料庫技術Oracle 基礎管理Oracle背景簡介,資料庫的安裝,資料庫的使用者名稱和密碼,客戶端登入資料庫服務SQLPLUS,資料庫基本概。
SQL語句資料庫的建立,表的建立,修改,刪除,查詢,索引的建立,主從表的建立,資料控制授權和回收,事務控制,查詢語句以及運算子的詳解,sql中的函式使用。
多表連線和子查詢等值和非等值連線,外連線,自連線;交叉連線,自然連線,using子句連線,完全外連線和左右外連線,子查詢使用以及注意事項。
觸發器、儲存過程觸發器和儲存過程使用場合, 通過例項進行詳解。
資料庫設計優化WHERE子句中的連線順序,選擇最有效率的表名順序,SELECT子句中避免使用 ‘ * ‘ 計算記錄條數等等。
資料備份與移植移植技巧,備份方案;匯入匯出等。
第三階段技術名稱技術內容
jdbc技術JDBC基礎JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同類的使用。
連線池技術瞭解連線池的概念,掌握連線池的建立、治理、關閉和配置。
ORM與DAO封裝物件關係對映思想,jdbc的dao封裝,實現自己的jdbc。
可以把第四階段的知識提前一點,特別是對哪些剛開始接觸物件導向程式設計的同學,我剛開始就學java se,感覺入門很不容易。先學web部分,有利於理解物件導向的概念,另外,web部分相對比較簡單,也比較直觀,寫完直接就可以看見效果,有助於提升大家的學習積極性。
第四階段技術名稱技術內容
web基礎技術
(專案實戰)
Xml技術使用jdom和dom4j來對xml文件的解析和生成操作,xml 的作用和使用場合。
html/cssJava掌握基本的html標籤的格式和使用,css層疊樣式表對div的定義,實現對網站佈局的基本實現。
Javascript瞭解javascript的基本語法以及相關函式的使用,並結合html頁面實現流程控制和頁面效果展示。
什麼是異常 異常的捕捉和丟擲 異常捕捉的原則 finally的使用,package的應用 import關鍵字。
jsp/servletServlet和SP 技術、上傳下載、 Tomcat 伺服器技術、servlet 過濾器和監聽器。
jstl和ELJSTL核心標籤庫、函式標籤庫、格式化標籤庫、自定義標籤技術、EL表示式在jsp頁面的使用。
ajax及框架技術瞭解和屬性原生態的ajax的使用,ajax使用的場合,使用ajax的好處,ajax框架jquery渲染頁面效果和相關的強大的第三方類庫,dwr如何和後臺服務進行資料傳輸,以及頁面邏輯控制等。
JSON高階應用Java使用json支援的方式對字串進行封裝和解析,實現頁面和java後臺服務的資料通訊。
Fckeditor編輯器FCKEditor線上編輯器技術、配置、處理圖片和檔案上傳。
javaMail技術瞭解域名解析與MX記錄、電子郵件工作原理、郵件傳輸協議:SMTP、POP3、IMAP、郵件組織結構:RFC822郵件格式、MIME協議、郵件編碼、複合郵件結構分析、JavaMail API及其體系結構、程式設計建立郵件內容:簡單郵件內容、包含內嵌圖片的複雜郵件、包含內嵌圖片和附件的複雜郵件。
JfreeChart報表統計報表;圖表處理。
BBS專案實戰採用Jquery+dwr+jsp+servlet+Fckeditor+JfreeChart+tomcat+jdbc(oracle) 完成BBS專案的實戰。
實戰價值學完此課程你至少已經是擁有近1年開發經驗的程式設計師了,但是你不應該滿足現狀,下面的課程會更加吸引你!
第五經典階段技術名稱技術內容
web主流框架技術
(專案實戰)
struts2.xstruts2框架的工作原理和架構分析,struts-default.xml與default.properties檔案的作用,struts。Xml中引入多個配置檔案。OGNL表示式、Struts2 UI和非UI標籤、輸入校驗、使用萬用字元定義action、動態方法呼叫、多檔案上傳、自定義型別轉換器、為Action的屬性注入值、自定義攔截器、異常處理、使用struts2實現的CRUD操作的案例。
hibernate3.xHibernate應用開發基礎; ORM基礎理論; 關係對映技術; 效能調優技術; 效能優化 一級快取 二級快取 查詢快取 事務與併發 悲觀鎖、樂觀鎖。
spring3.xSpring IoC技術; Spring AOP技術; Spring 宣告事務管理; Spring 常用功能說明,spring3.0的新特性, Spring整合struts2和hibernate3的運用。
Log4j和JunitLogging API; JUnit單元測試技術; 壓力測試技術:badboy 進行測試計劃跟蹤獲取以及JMeter壓力測試。
線上支付技術完成支付寶的支付介面的線上支付功能。
電子商務網實戰採用spring3+hibernate3+struts2+jquery+dwr+FckEditor+tomcat 完成電子商務網站實戰開發。
實戰價值專案實戰價值完全高標準的高要求的迎合企業的需求,學完此課程,全部消化了,你已經就是一個地地道道的高階程式設計師,已經為你的職業生涯鋪平了道路,你還等什麼,向著高薪衝刺吧!
第六進階階段技術名稱技術內容
web高階進階
(專案實戰)
openJpa技術JPA介紹及開發環境搭建、單表實體對映、一對多/多對一、一對一、多對多關聯、實體繼承、複合主鍵、JPQL語句、EntityManager API、事務管理,瞭解一下jpa2.0的新特性以及應用。
lucene搜尋引擎瞭解全文搜尋原理、全文搜尋引擎、什麼是OSEM、OSEM框架Compass、基於使用Lucene使用Compass實現全文增量型索引建立和搜尋、探索Lucene 3.0以及API。
電子商務網重構此專案採用了Lucene+compass+openJpa+上一版電子商務網站的技術進行重構。
實戰價值此專案的實戰價值是前所未有的超值,已經超越了企業的實際要求,你已經是企業的搶手人才,一旦進入企業,便讓你立於不敗之地,輕鬆成為公司的技術骨幹和精英,技術已經改變了你一生!
Excel/PDF文件處理技術java對excel和pdf文件分別利用poi和itext來進行解析和生成。此技術在企業級系統的報表中經常使用。
OA工作流技術JBPM工作流是什麼、JBPM介紹、JBPM的主要用法、各類節點的用法、任務各種分派方式、JBPM的整體架構原理、工作流定義模型分析、執行期工作流例項模型分析、資料庫表模型分析、流程定義管理、流程例項監控、對JBPM的相關介面進行封裝,構建自己的工作流應用平臺等。
WebService技術WebService技術原理、WebService技術的應用、Soap服務的建立與管理、WSDL描述文件規範、UDDI 註冊中心執行原理;使用Axis和Xfire建立WEB服務、Webservice客戶端的編寫、使用TCPMonitor監聽SOAP協議、異構平臺的整合。
Linux技術Linux 系統安裝,解除安裝、linux 使用的核心思想、linux下的使用者管理,檔案管理,系統管理、程式的安裝,使用,解除安裝。linux下作為server的基本應用:web伺服器,j2ee伺服器,ftp伺服器的安裝和專案的部署。
CRM專案實戰此專案能瞭解和熟悉客戶關係管理的基本流程以及功能的實現,採用上面幾個階段學到的主流框架實現,同時加入了JBPM的技術。
實戰價值學完這個系統會讓你輕鬆進入企業級的大型專案的開發,倍感得心應手。完備的知識體系和最前沿的開發技術,帶給你的將是在精神上不同目光的瞻望和物質上高薪資回報的喜悅,帶你進入人生的新的轉折點和起點!
第七架構階段技術名稱技術內容
大型高併發網站優化方案
(專案實戰)
如何構建一個高效能網站詳解什麼樣的網站需要高效能,高效能的指標體系,構建高效能網站需要做哪些工作,注意哪些細節。
SSI技術什麼是SSI,使用他有什麼好處,什麼樣的系統才使用SSI,SSI技術詳解和使用,應用到專案中。
生成靜態頁技術什麼是靜態頁,為什麼需要靜態頁以及帶來的好處,生成靜態頁的模版技術Velocity和Freemark,生成靜態頁的訪問規則等。
快取技術為什麼使用快取技術,oscache快取技術的介紹和使用,memcached快取技術的介紹和使用、兩者快取技術的比較和如何去使用。
經典web伺服器什麼是web伺服器,什麼是javaweb伺服器,他們存在什麼關係,當前技術主流中常用的web伺服器有哪些, web伺服器apache和nginx的應用。
nginx架構實戰什麼是反向代理,負載均衡以及叢集,在nginx中如何實現這些高效能的系統架構。
實戰價值此課程已經將你領入了技術經理和主管以及架構師的門檻了,稍微用心學習加上實戰你就是技術牛人了,薪水非常高,同時很快你就是公司的技術中層管理者,你的人生就此又一次的發生巨大的轉折!
如果你把上面這些東西全部掌握了,那不用說你已經算是java界比較NB的人了,因為一般能掌握這些知識的人,基本上有5-10年的工作經驗,不過也不好說,說不定你就是那個天才呢,加油吧少年!