Java學習前的一些準備
JDK -(Java SE Development Kit)
JDK是Java開發所需要的環境,就跟我們想玩某個網遊一樣,玩之前一定是需要先安裝相應的程序包的。那這個JDK就是我們準備登陸Java大陸前需要安裝的一個程序包。
IDE - (Integrated Development Environmen)
IDE是集成開發環境,一般集成開發環境都會帶有JDK,可以使用自帶的JDK也可以使用我們下載的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEA。IDE具備代碼分析、補全、變異、調試等常用功能,可以大大的提高開發人員的編程效率。
階段大致細節
1、入門基礎
Java簡介
瞭解什麼是Java;代碼語法基本格式;輸出表達式。
瞭解Java大致的編譯以及執行過程
Java語言基礎、循環、數組;瞭解類和對象
掌握Java的基本數據類型和引用數據類型有哪些;
掌握強制數據類型轉換和自動類型提升規則;
循環的語法及作用;
掌握類的概念以及什麼是對象。
OOP封裝、繼承、多態
面向對象的三大特徵,本節內容非常重要也相對來說較為難以理解,一定要耐下心來好好理解。
java.util.*包下的常用類
util包下的Collection、Comparator、Iterator、List、Map、Set接口都很重要,著重看一下他們的實現類,如:ArrayList、LinkedList、HashSet、HashMap、Hashtable、TreeMap、TreeSet等。
java.lang.*包下的常用類
lang包下的基本數據類型對應的包裝類(Byte、Short、Integer、Long、Double、Float、Character、Boolean);
字符串相關的類String、StringBuffer、StringBuilder。
IO流操作,多線程及Socket
掌握IO讀寫流相關的類,瞭解字節流,字符流和字符流緩衝區;
掌握線程的概念,多線程的創建、啟動方式,鎖和同步的概念及運用;
掌握Socket通信的概念,如何聲明客戶端服務端,如何完成雙端數據通信。
數據庫基礎(Mysql)及JDBC
掌握數據庫的基本概念,Mysql的安裝、啟動與停止
Mysql數據庫客戶端的安裝與使用
JDBC的概念,在Java中使用Mysql驅動包連接Mysql
通過第一階段的學習掌握Java語法和常用類,數據庫入門技術相關知識。讓自己對於存儲,IO,這些有個大概的瞭解。這時候,暫時不需要花大量的精力以及篇幅去學習多線程和Socket,當然這裡不是說他們不重要,而是對於現階段的你,或許很難非常清晰的明白以及瞭解他們具體的作用。這裡第一節忽略掉了Swing,Swing章節的內容可以不學,因為在實際的工作中基本上沒有用武之地。
使用第一階段的技術完成一個小型的系統,找一個自己做容易理解的系統練練手,比如超市管理系統、成績管理系統等等這類需求簡單卻能講整章內容結合起來使用的項目。當然這個時候可能會有人覺得沒有圖形界面沒法完成系統操作。實際上我們可以通過Console的輸入輸出來做系統界面。
新手在第一階段的學習時,是最難熬的,因為這個時候需要背的東西特別多,且不再像看小說一樣,什麼東西都能看明白。路就變成了前面熟悉,左右陌生。這個時候人的求知慾作祟,往往會把自己帶著偏移了方向,因為我們自己也不知道這樣走對不對。漸而遠之,也就慢慢放棄了。而這樣的放棄,是最不值得的。所以,學習Java一定要按照某一個大綱,一直往下不要往其他地方偏,先走完一遍之後,再回頭慢慢撿。
2、前端基礎
HTML基本標籤、表格、表單和框架;
掌握網頁的基本構成;
掌握HTML的基本語法;
表格的作用以及合併行、合併列;
表單標籤的使用,提交方式get/post的區別;
框架佈局的使用
CSS樣式表;
掌握CSS的語法及作用,在html中的聲明方式;
掌握CSS佈局的函數使用;
掌握CSS外部樣式的引入。
JavaScript;
掌握JS的語法及作用,在HTML中的聲明方式;
掌握JS的運行方式;
掌握JS中的變量聲明、函數聲明、參數傳遞等;
掌握HTML中的標籤事件使用;
掌握JS中的DOM原型
上述三節都可以查看w3school:
jQuery
瞭解如何使用jQuery,下載最新版或者老版本的jQuery.js
掌握選擇器、文檔處理、屬性、事件等語法及使用;
能夠靈活使用選擇器查找到想要查找的元素並操作他們的屬性;
動態創建元素。
BootStrap;
掌握BootStrap的設計理念,以及使用方式。這是我們需要接觸的第一個前端框架,使用起來也很簡單;
掌握BootStrap的柵格系統、表單、全局樣式、分頁工具欄、模態框等。
Servlet
掌握Java中的Web項目目錄結構;
掌握Java Web項目的重要中間件Tomcat;
掌握Servlet中的Request和Response;
掌握Servlet的基本運行過程。
動態網頁技術
JSP在Java Web中的角色;
JSP的編碼規範,以及JSPServlet;
JSP顯示亂碼的解決辦法等。
JSP數據交互
JSP中如何編寫Java代碼,如何使用Java中的類;
JSP中的參數傳遞。
狀態管理Session和Cookie
掌握Session的作用及作用域;
掌握Cookie的作用及作用域;
掌握Session及Cookie的區別,存儲位置,聲明週期等;
掌握Session及Cookie分別在JSP和Cookie中的使用
JSTL和EL表達式
使用EL表達式輸出page、request、session、application作用域中的值
使用JSTL來做邏輯判斷或循環控制
JNDI數據庫連接池
JNDI的作用以及如何使用JNDI連接數據庫
分頁和文件上傳
掌握在JSP中如何使數據達到分頁的目的;
掌握在JSP表單中如何上傳文件,Servlet如何處理上傳請求(Commons-Fileupload、Commons-IO)。
Ajax
掌握Ajax的基本概念
掌握jQuery中的Ajax請求
掌握JSON
Filter、Listener
掌握Filter和Listener
掌握Session過濾器和編碼過濾器
通過第二階段瞭解前端相關的技術,如果你喜歡前端各種酷炫的效果,那麼就深入學習JS、CSS。不大感興趣的話,就淺嘗輒止,並重點學習Servlet、Filter、Listener。重點學習,重點學習,重點學習。 重要的話說三遍!
學習完第二階段的內容之後,就可以進行B/S版本的系統開發了。這個時候我們可以挑選個稍微複雜點兒的項目來練練手,能找到商業項目練手的那是最好不過的,沒有的話,就寫寫學生管理系統,檔案管理系統,人事管理系統之類的練練手吧。
3、 主流技術應用
Struts2應用
通過學習Struts,瞭解什麼是MVC;
掌握Struts是如何完成界面控制的;
掌握Struts的參數接收及傳遞;
掌握Struts的攔截器;
掌握Struts的OGNL和標籤使用。
Hibernate應用
瞭解什麼是ORM,ORM在項目中的作用及優勢;
Hibernate中的hbm與實體類之間的關係;
什麼是HQL,什麼是關係映射(一對一,多對一,多對多);
瞭解Hibernate的事務、懶加載和緩存。
Spring應用
Spring容器的作用;
Spring的AOP和IOC;
Spring託管Hibernate事務;
Spring整合Struts2和Hibernate。
通過第三階段瞭解目前Java領域比較經典的三大框架,瞭解他們的大概功能,並加以使用。通過使用SSH開發一個簡易CRM之類的項目來加強了解,理清楚框架的大致原理。搞清楚這三個框架之間的作用域以及角色。
在第三階段的內容學習完了之後,就應該對整個系統研發有個大概的印象,實際上這個時候,獨立完成一個系統之後,再回過頭來仔細思考下Servlet+JDBC+JSP與SSH實現項目的相同點及區別。這樣會讓你更加的有收穫。
4、模擬實際項目開發
1
SpringMVC的應用
SpringMVC中的控制器註解、請求註解、參數註解、響應註解等;
SpringMVC中的靜態資源處理;
SpringMVC的容器。
Mybatis的應用
Mybatis的Mapping與實體映射;
Mybatis中的SQL語句寫法;
Mybatis的緩存。
Spring+SpringMVC+Mybatis整合
SSM的整合使用;
回顧SSH與SSM的區別。
Redis+Mysql的查詢優化設計
Redis的安裝與連接;
Redis常用命令;
Redis存儲機制;
Redis的持久化機制。
FastDFS的使用
什麼是分佈式文件系統;
分佈式文件系統解決的問題是什麼;
FastDFS的使用
Linux操作系統
Linux中的常用命令;
Linux下的JDK、tomcat安裝;
Linux下的項目部署方式。
Nginx的使用
Nginx的作用;
反向代理和正向代理分別是什麼;
Nginx實現tomcat代理。
Mysql集群方案
Mysql集群的常用方案有哪些;
Mycat中間件的概念
Mycat的使用準則;
瞭解數據庫的主從複製;
瞭解數據庫的主備切換;
為什麼需要主從和主備。
Solr入門
什麼是全文檢索;
Solr做搜索的優勢是什麼;
Lucene、ElasticSearch、Solr之間的關係;
Solr的安裝與使用。
JVM
回顧所有所學習到的知識,聯繫所有框架中的自定義容器、上下文來理解變量及對象的存儲
理解垃圾回收是怎麼一回事
理解集中回收算法
完全理解整個堆棧模型
通過第四個階段瞭解更簡單易用的SpringMVC,應用和存儲集群相關的概念及實現方案。讓自己具備一個設計高可用,可擴展的項目框架視野。這樣對於後面繼續專研SpringCloud / Dubbo、zookeeper這些RPC相關的框架有很大的好處。
第四階段的內容更加偏向於互聯網技術棧,通過這一節的內容能夠脫離出基本的增刪改查,瞭解出了增刪查改之後,需要了解的集群、系統性能優化、外部緩存服務器使用、集群負載等概念。這些思維對於後面的提高以及學習會很有好處。
一定要動手,一定要動手,一定要動手。把代碼敲爛,你才會有收穫,不要被視頻誘導,敲一遍之後誤認為你自己會了,如果第二天你起來時已經忘了昨天學習了什麼的話,那說明你還是沒學會。好好加油吧。
在所有的學習過程中,每一個節點都應該有相應的練習或者項目來進行練手,看再多的博文和視頻都是不行的, 不能讓自己的雙手停下來,只有不停的敲打鍵盤,寫出自己的項目,然後在實際的開發中學會如何使用debug,總結所有遇到的bug及解決思路,這樣才叫做學習技術。所以,希望有興趣的同學,能夠好好努力,不要因為一點點難度就懈怠、放棄。開發這條路途,無論你工作多久,都會遇到各種奇奇怪怪的問題,以及形形色色的bug等著你去解決。
閱讀更多 3T教育編程猿 的文章