經過這麽多年的開發,以及結合平時面試開發者的壹些經驗,我覺得對於J2SE方面主要就是要掌握以下的壹些內容。
1.JVM相關(包括了各個版本的特性)
對於剛剛接觸的人來說,JVM相關的知識不壹定需要理解很深,對此裏面的概念有壹些簡單的了解即可。不過對於壹個有著3年以上經驗的資深開發者來說,不會JVM幾乎是不可接受的。
JVM作為運行的基礎,很難相信對於JVM壹點都不了解的人可以把語言吃得很透。我在面試有超過3年經驗的開發者的時候,JVM幾乎就是壹個必問的問題了。當然JVM不是唯壹決定技術能力好壞的面試問題,但是可以佐證開發能力的高低。
在JVM這個大類中,我認為需要掌握的知識有:
JVM內存模型和結構
GC原理,性能調優
調優:ThreadDump,分析內存結構
class二進制字節碼結構,classloader體系,class加載過程,實例創建過程
方法執行過程
各個大版本更新提供的新特性(需要簡單了解)
2.的運行(基礎必備)
這條可能出看很簡單,程序的運行誰不會呢?不過很多時候,我們只是單純通過IDE去執行程序,底層IDE又是如何執行程序呢?很多人並不了解。
這個知識點是最最基本的開發者需要掌握的,初學,第壹個肯定是教妳如何在命令行中執行程序,但是很多人壹旦把學完了,IDE用上了,就把這個都忘了。為什麽強調要知道這個呢,知道了最純粹的啟動方式之後,妳才能在啟動出問題的時候,去分析當時啟動的目錄多少,執行命名如何,參數如何,是否有缺失等。這樣有利於妳真正開發中去解決那些奇奇怪怪的可能和環境相關的問題。
在這裏需要掌握的知識有:
c編譯文件為class文件
命令的使用,帶package的類如何在命令行中啟動程序涉及到的各個路徑(clasth,。library。path,運行的主目錄等)
3.數據類型
這條沒有什麽好多說的,無非就是中的基本類型和對象類型的掌握。霍營IT培訓建議可以再了解壹些JDK如何自動轉換方面的知識,包括裝箱拆箱等,還要註意避免裝箱之後的類型相等的判斷
主要知識點:
基本類型:int,long,float,double,boolean,。。。
對應的對象類型:Integer等類型到基本類型的轉換,裝箱和拆箱
Object類型:equals,hashcode
String類型的特點