如何做到簡歷中要求的要有扎實的Java基礎?
感謝邀請!希望以下對讀者們有幫助!
大多數(shù)的開發(fā)朋友都有這樣的疑惑、:做Java開發(fā),就算自己工作了3年、5年甚至10年,有些Java基礎知識還是無法張口就來,準確無誤?!不知道你們有沒有,反正我有。
為什么會有這樣的情況呢?還不是因為Java知識紛繁復雜,無窮無盡!
沒錯,Java知識的確紛繁復雜,但要想學好Java,做到基礎牢固,還是有章可循的,下面就來分享一下我的Java學習心得!!
我身邊有個阿里的大牛,他強調(diào),如果想學好Java,就一定要玩好JDK!
一、Java運行時在Java知識體系中,有一個重要的組成部分,就是JVM,而Java程序能夠得以在JVM上運行的根本就是JRE。
學好JRE,就需要我們不斷的摸索JVM運行Java代碼的原理,各種內(nèi)存分區(qū)以及在代碼之下的秘密。
二、Java基礎類庫Java龐大的類庫系統(tǒng)是我們編程的基礎。在大牛看來,類庫的源碼可以分為四個等級:
等級一:精讀源碼
這個等級的類庫應該能夠做到源碼了然于胸,倒背如流,包括:java.io、java.lang、java.util這三個包下的API,但也并不是所有的API都要精讀,像Exception和Error就可以忽略,還是要看在實際開發(fā)中的使用場景是否廣泛。
尤其是java.lang下的各個類,比如我們最常用的String!如果有不懂的,關注我的文章,之后給大家更新!
所以,當你迷茫于不知道學什么,或者感覺自己什么都會了的時候,不妨去看看這三個包下的基礎類庫,相信你一定能夠有所收獲的。
等級二:深刻理解
深刻理解不同于精讀源碼的三個基礎包,深刻理解的含義是應該熟悉其內(nèi)部實現(xiàn)邏輯和基本思路,并且有自己的見解。這個等級的類庫包括:
java.lang.reflect、java.net、javax.net、java.nio、java.util.concurrent。
深刻理解,這個級別看似比精讀源碼要求低,但所選類庫確實最重要的。這個級別的類,全都是一些進階到高級所必須了解的。但是,由于這些類的源碼往往非常復雜,要了解清楚細節(jié)花費的時間是非常多的,因此,花費巨量的時間去研究這么復雜的代碼其實沒必要。不過在使用這些類庫遇到問題時,可以通過閱讀源碼的方式嘗試解決問題。這種學習方式不僅可以加深對類庫的理解,還會幫助解決90%的問題。
reflect代表反射,net代表網(wǎng)絡IO,nio代表非阻塞io,concurrent代表并發(fā)。這四個家伙可以說每一個都能夠面試官問上半天的,而且,這四個包的內(nèi)容,如果要深刻理解的話,其實還牽扯了很多其他的知識。
舉個栗子:反射你要了解的話,就需要搞明白JVM的類加載機制;網(wǎng)絡IO要搞清楚的話,你就要搞清楚TCP/IP和HTTP、HTTPS。等級三:會用即可
這個級別的類庫包括下面這些:
java.lang.annotationjavax.annotation.*java.lang.refjava.mathjava.rmi.*javax.rmi.*java.security.*javax.security.*java.sqljavax.sql.*javax.transaction.*java.textjavax.xml.*org.w3c.dom.*org.xml.sax.*javax.crypto.*javax.imageio.*javax.jws.*java.util.jarjava.util.loggingjava.util.prefsjava.util.regexjava.util.zip會用即可,這個級別要求很明顯,就是會用就可以了,這些包大部分都是在特定的情況下會用到,但卻不會時刻用到。
僅僅是用的時候稍微研究一下,知道其具體的用法即可,不需要深究。
等級四:無視
所有以上沒有提到的包。比如swing,awt這些玩意兒。
三、開發(fā)工具這些開發(fā)工具主要就是輔助開發(fā),javac應該是最常用的一個,雖然你幾乎不用手動執(zhí)行它。
此外,其實還有一些比較實用的工具,可以幫助你排查問題。而且有的面試官,也會問你這類問題。比如問你平時都用什么工具排查問題。
我之前有分享過很多面試經(jīng)歷,包括阿里、京東、頭條、美團、騰訊等各大一線互聯(lián)網(wǎng)的面試經(jīng)歷!感興趣的朋友們可以去我的主頁!我覺得比較實用的幾個工具主要有jmap、jconsole、jstack、jvisualvm,至于這幾個工具有什么作用,請參考百度。
還可以自己去JDK 的bin目錄下找一找,看有沒有什么更好玩的工具。
綜上,就是阿里大牛分享的Java學習超級指南,你學會了嗎?!
希望我這些分享可以幫助在這個行業(yè)發(fā)展的朋友和童鞋們,在論壇博客等地方少花些時間找資料,把有限的時間,真正花在學習上,我的很多文章都有分享各種架構(gòu)資料,相信對于已經(jīng)工作和遇到技術瓶頸或者寫博客碼友,在這份資料中一定都有你需要的內(nèi)容。