玩好JDKjava
在詳細講解JDK以前,LZ首先要強調下,本文的內容,都是LZ我的的主觀判斷。所以,各位猿友務必結合本身的判斷以後,再決定是否要學習,以及學習到什麼程度。程序員
此外,本文只是告訴你學什麼,學到什麼程度,本文不會包含太多具體的技術細節講解。面試
JDK其實就是Java SE Development Kit的縮寫,要玩好這東西可不簡單。JDK主要包含了三部分,第一部分就是 Java運行時環境 ,這其實就是JVM。此外,第二部分就是 Java的基礎類庫 ,這個類庫的數量仍是很是可觀的。最後,第三部分就是Java的開發工具 ,它們都是輔助你更好的使用Java的利器。
最後,若是你們若是在自學遇到困難,想找一個java的學習環境,能夠加入咱們的java學習圈,點擊我加入吧,會節約不少時間,減小不少在學習中遇到的難題。sql
那麼很顯然,要玩好JDK,就是要玩好JDK的這三部分。接下來,我們就逐個的來講一下,每個部分要學什麼,學到什麼程度。數據庫
第一部分:Java運行時環境編程
這一部分其實就是常說的jre,而它的核心其實就一個東西,就是JVM。json
JVM這個東西,它的重要性LZ不想再強調了,JVM那本書甚至比《Thinking in java》還重要,這已經足見LZ多麼看重JVM了。設計模式
固然了,只是LZ看重,固然沒什麼卵用,但只要Java稍微高級一點點的職位,這部分基本上都是面試必問內容,這更加說明了JVM的重要性。數組
因此,對於JVM,沒什麼可說的,就是往死裏學,往死裏研究,能有多深就多深!緩存
第二部分:Java的基礎類庫
Java的基礎類庫從你剛開始學Java就開始接觸了,可是,直到你結束整個Java生涯,你都不必定能把全部的類都見一遍。
這說明了什麼?是否是說明了Java基礎類庫的龐大?
錯!大錯特錯!這其實真正說明的是,有不少類你徹底沒必要要care它們,由於它們從你接觸Java到放棄,都不必定能接觸到。
因此,搞清楚哪些類重要,哪些類不重要,就很是有必要了。這可讓你以最短的時間,作最有價值的事。
首先,咱們來Java基礎類庫的包都有哪些,爲了使得本文更有表明性,咱們取JDK6的包列表。
程序員如何成就本身紮實的Java基礎(玩好JDK)附贈300集學習教程
怎麼樣?是否是被嚇到了?這麼多包,並且還這麼多陌生的包名,有的連見都沒見過,這特麼怎麼玩?
不要着急,LZ先帶你把這些包給分下級別,LZ將這些包一共分爲四個級別。
第一級別:精讀源碼
該級別包含的包以下:
程序員如何成就本身紮實的Java基礎(玩好JDK)附贈300集學習教程
精讀源碼,這是要求最高的級別。可是,要求你精讀源碼並不意味着,這些類就是最重要的。而是由於,LZ以爲這些類比較經常使用,並且比較簡單,看看它們的源碼有助於鍛鍊你看源碼的感受,也瞭解一下大神們寫代碼的風格。
看這些源碼的目的,更可能是爲了增長你的閱讀代碼能力。並且,LZ這裏必需要強調一下,像Exception和Error這一類的,就不用讀源碼了,親。
其實上面三個包都有一個共同點,那就是這三個包,基本上都是你最經常使用的了。lang包不用說了,你隨便寫點啥都得用到,io包和util包也是你平時讀寫文件和使用數據結構必不可少的。
看源碼從這些經常使用的包下手找手感,LZ我的以爲再合適不過。
第二級別:深入理解
該級別包含的包以下:
程序員如何成就本身紮實的Java基礎(玩好JDK)附贈300集學習教程
深入理解,這個看似比精讀源碼要求低的級別,其實偏偏是最重要的。這個級別要求的類,全都是一些進階到高級所必須瞭解的。
固然了,這裏要強調一點的是,LZ說這些類要深入理解,而沒說要看它們源碼,並非說這些類的源碼不能看,或者看了沒用。而是這些類的源碼每每很是複雜,要了解清楚細節花費的時間是很是多的,所以,花費巨量的時間去研究這麼複雜的代碼其實不必的。
不過,若是你在使用這些類的過程當中,遇到了問題,這個時候若是看它們源碼能夠解決的話,那就不要再矜持了,果斷看看源碼解決你的問題吧,這是最適合的看源碼的契機了。
小小的透露一下,LZ看過的JDK源碼,基本上全是這麼看過來的。遇到了問題不要百度和谷歌,看源碼能解決你90%的問題。
此外,看到這四個包的名字,不難看出它們各自表明了什麼。reflect表明了反射,net表明了網絡IO,nio表明了非阻塞io,concurrent表明了併發。
這四個傢伙能夠說每個都夠面試官問上半天的,並且,這四個包的內容,若是你要深入理解的話,其實還牽扯了不少其它的知識。
舉個例子,反射你要了解清楚的話,你是否是要搞明白JVM的類加載機制?網絡IO要搞清楚的話,你是否是要清楚TCP/IP和HTTP、HTTPS?包括併發包,若是你要搞清楚的話,是否是要了解併發的相關知識?
所以,這四個包要完全搞清楚,仍是須要花費必定時間和精力的。
可是,請相信LZ,這絕對是值得的,甚至能夠說,這四個包用的夠不夠叼,基本決定了一個Java程序員所處的檔次。
第三級別:會用便可
該級別包含的包以下:
程序員如何成就本身紮實的Java基礎(玩好JDK)附贈300集學習教程
會用便可,這個級別的要求很顯然了,就是會用就能夠了。這些包大部分都是在特定的狀況下會用到,但卻不會時刻用到。
就像sql包和transaction包,就是操做數據庫時用到的。而xml、dom和sax這些,都是操做xml時用到的。其它的包也都是相似的,有使用註解時用的,有遠程方法調用時用的,也有涉及到加密時用到的等等。
這些包在面試時通常不會問到,因此它們的重要性天然要低不少,並且也不太須要刻意的去學,用到了研究一下,會用便可。
第四級別:請無視它
該級別包含了全部以上沒有提到的包。
這個級別就更不用解釋了,到如今還沒提到的包,基本上能夠忽略,由於你基本上不太可能用到它們,好比swing、awt這些玩意兒。
什麼?你說你常常用它們?
若是真的是這樣的話,那麼LZ只能遺憾的告訴你,趕忙跳槽吧,你待在這公司沒啥前途的,0-0。
第三部分:Java的開發工具
這些開發工具主要就是輔助你開發的了,javac應該是最經常使用的一個了,雖然你幾乎不用手動執行它。
此外,其實還有一些比較實用的工具,能夠幫助你排查問題。並且有的面試官,也會問你這類問題,好比問你平時都用什麼工具排查問題。
LZ以爲比較實用的幾個工具主要有jmap、jconsole、jstack、jvisualvm,至於這幾個工具備什麼做用,LZ這裏就不提了,若是你要了解這些命令的詳細內容,能夠去谷歌或者官網上找,仍是很是好找的。
針對不少同窗提出來的想學習缺沒有系統的學習資料,以及健全的java學習路線和知識體系,檸檬在這裏爲你們準備了 由北京尚學堂高淇老師和馬士兵老師親自錄製的java自學視頻教程,但願對小夥伴們有所幫助!
資料目錄
第一階段JAVA 快速入門
章節1:JAVA 入門和第一個項目
章節2:流程控制語句和方法
章節3:數組初步
第二階段JAVA 基礎深化和提升
章節1:面向對象深化
章節2:數組深化
章節3:異常機制
章節4:經常使用類
章節5:容器
章節6:IO 流技術
章節7:多線程技術
章節8:網絡編程
章節9:XML 技術
章節10:反射技術
章節11:多線程和併發編程
章節12:手寫服務器項目
第三階段數據庫編程和設計
章節1:Oracle 數據庫的使用
章節2:SQL 語言
章節3:Mysql 數據庫的使用
章節4:JDBC技術
章節5:MyBatis框架
第四階段網頁編程和設計
章節1:HTML5
章節2:CSS3
章節3:JavaScript
章節4:Jquery
第五階段JAVAEE 和項目開發
章節1:Servlet 技術
章節2:JSP 技術
章節3:JSP和Servlet整合案例
章節4:EL表達式和JSTL標籤庫
章節5:過濾器和監聽器
章節6:Ajax 異步技術和json
章節7:項目:財務管理系統
第六階段SSM 框架和項目開發
章節1:Spring 框架
章節2:Spring MVC 框架
章節3:SSM 框架整合
章節3:SSM 框架整合
第七階段JAVA 高級技術
章節1:Linux
章節2:Maven
章節3:Dubbo
章節4:VSFTPD
章節5:Nginx
章節6:Redis
章節7:Solr
章節8:ActiveMQ
章節9:JsonP
章節10:HttpClient
章節11:MyCat
第八階段電商高級項目_架構/編碼
章節1:電商Ego-基於SOA 架構,使用Dubbo,逆向工程,分頁插件完成商品查詢
章節2:電商Ego-使用VSFTPD 和Nginx 完成商品新增
章節3:電商Ego-基於json 格式完成商品規格參數管理
章節4:電商Ego-使用jsonp 完成前臺首頁導航菜單
章節5:電商Ego-完成CMS 系統
章節6:電商Ego-添加前臺大廣告位數據緩存
章節7:電商Ego-完成商品搜索功能
章節8:電商Ego-顯示商品詳細詳情
章節9:電商Ego-完成SSO 單點登陸系統
章節10:電商Ego-購物車
章節11:電商Ego-訂單系統實現
章節12:電商Ego-ActiveMQ
章節13:電商Ego-MySql 讀寫分離+MyCat 分庫分表
章節14:電商Ego-項目部署
第九階段設計模式/框架源碼分析
章節1:GOF23 設計模式
章節2:Servlet 和Tomcat 底層源碼分析
章節3:Mybatis 底層源碼分析
章節4:Spring 框架底層源碼分析
第十階段微服務架構
章節1:Spring Boot
章節2:Spring Data
章節3:Spring Cloud