Java学习指导————如何做到基础扎实
原文出處:《一篇文章教會(huì)你,如何做到招聘要求中的“要有扎實(shí)的Java基礎(chǔ)”》
引言
不少同學(xué)總會(huì)產(chǎn)生這樣的疑問:
“請問,如何才叫基礎(chǔ)扎實(shí)?”
答案是:“玩好JDK!”
JDK學(xué)習(xí)內(nèi)容主要包含三部分:
1、Java運(yùn)行時(shí)環(huán)境,其實(shí)就是JVM;
2、Java基礎(chǔ)類庫;
3、Java開發(fā)工具,輔助Java的利器。
第一部分:Java運(yùn)行時(shí)環(huán)境
這一部分其實(shí)就是常說的JRE,而它的核心其實(shí)就是一個(gè)東西:JVM,Java虛擬機(jī)
JVM這個(gè)東西,它的重要性原作者認(rèn)為甚至比《Thinking in Java》還重要。而這部分的知識(shí)和內(nèi)容,只要是Java稍微高級一點(diǎn)點(diǎn)的職位,基本上是面試必問的內(nèi)容,這更說明了JVM的重要性。
所以,對于JVM,沒有什么可說的,就是往死里學(xué),往死里研究,能有多深就多深。
第二部分:Java的基礎(chǔ)類庫
Java雖然擁有龐大的類庫系統(tǒng),但是并不是所有都需要掌握和知道,原作者列出Java6的包列表,并將其分為四個(gè)等級,對待的程度也是分為四個(gè)等級。
第一級別:精讀源碼
java.io java.lang java.util? ? 精讀源碼,這是要求最高的級別。
? ? 但是,要求精讀源碼不意味著這些類是最重要的。而是因?yàn)檫@些類比較常用,而且比較簡單,閱讀這些類的源碼有助于鍛煉看源碼的感覺,也了解一下大神們寫代碼的風(fēng)格。
? ? Exception和Error這一類的,可以忽略。
? ? 看源碼從這些常用的包下手找手感,在合適不過。
第二級別:深刻理解
java.lang.reflect java.net javax.net.* java.nio.* java.util.concurrent.*深刻理解,這個(gè)級別看似比精讀源碼要求低,但所選類庫確實(shí)最重要的。這個(gè)級別的類,全都是一些進(jìn)階到高級所必須了解的。
但是,由于這些類的源碼往往非常復(fù)雜,要了解清楚細(xì)節(jié)花費(fèi)的時(shí)間是非常多的,因此,花費(fèi)巨量的時(shí)間去研究這么復(fù)雜的代碼其實(shí)沒必要。
不過在使用這些類庫遇到問題時(shí),可以通過閱讀源碼的方式嘗試解決問題。這種學(xué)習(xí)方式不僅可以加深對類庫的理解,還會(huì)幫助解決90%的問題。
reflect代表反射,net代表網(wǎng)絡(luò)IO,nio代表非阻塞io,concurrent代表并發(fā)。
這四個(gè)家伙可以說每一個(gè)都能夠面試官問上半天的,而且,這四個(gè)包的內(nèi)容,如果要深刻理解的話,其實(shí)還牽扯了很多其他的知識(shí)。
舉個(gè)栗子:反射你要了解的話,就需要搞明白JVM的類加載機(jī)制;網(wǎng)絡(luò)IO要搞清楚的話,你就要搞清楚TCP/IP和HTTP、HTTPS。
第三級別:會(huì)用即可
java.lang.annotation javax.annotation.* java.lang.ref java.math java.rmi.* javax.rmi.* java.security.* javax.security.* java.sql javax.sql.* javax.transaction.* java.text javax.xml.* org.w3c.dom.* org.xml.sax.* javax.crypto.* javax.imageio.* javax.jws.* java.util.jar java.util.logging java.util.prefs java.util.regex java.util.zip會(huì)用即可,這個(gè)級別要求很明顯,就是會(huì)用就可以了,這些包大部分都是在特定的情況下會(huì)用到,但卻不會(huì)時(shí)刻用到。
僅僅是用的時(shí)候稍微研究一下,知道其具體的用法即可,不需要深究。
第四級別:無視
所有以上沒有提到的包。比如swing,awt這些玩意兒。
第三部分:Java 開發(fā)工具
這些開發(fā)工具主要就是輔助開發(fā),javac應(yīng)該是最常用的一個(gè),雖然你幾乎不用手動(dòng)執(zhí)行它。
此外,其實(shí)還有一些比較實(shí)用的工具,可以幫助你排查問題。而且有的面試官,也會(huì)問你這類問題。比如問你平時(shí)都用什么工具排查問題。
原作者覺得比較實(shí)用的幾個(gè)工具主要有jmap、jconsole、jstack、jvisualvm,至于這幾個(gè)工具有什么作用,請參考百度。
還可以自己去JDK 的bin目錄下找一找,看有沒有什么更好玩的工具。
總結(jié)
以上是生活随笔為你收集整理的Java学习指导————如何做到基础扎实的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基础日常总结!!
- 下一篇: mysql替换sql中rank函数_My