在市面上,有著許多Java的學(xué)習(xí)圖書(shū),大部分圖書(shū)的內(nèi)容都在講解著Java最為基礎(chǔ)的部分,有些稍微不正規(guī)的書(shū)中,可能還會(huì)存在些許錯(cuò)誤的內(nèi)容,而且網(wǎng)上也有千奇百怪的Java面試題,很多也是著重在Java基礎(chǔ)上。實(shí)際上應(yīng)聘Java高級(jí)開(kāi)發(fā)工程師的話(huà),這些基礎(chǔ)知識(shí)的存貨是遠(yuǎn)遠(yuǎn)不夠的,除此之外,必須懂得算法,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)等知識(shí)。由于內(nèi)容涉及較多,所以不講解具體的技術(shù),而是從企業(yè)招聘Java高級(jí)開(kāi)發(fā)工程師的面試題進(jìn)行了整理,希望對(duì)大家有幫助。

一、Java基礎(chǔ)
1、面向?qū)ο?/b>
掌握面向?qū)ο蟮暮诵乃枷氩⑸疃壤斫?/p>
掌握并理解封裝繼承多態(tài)相關(guān)技術(shù)
2、I/O
掌握字節(jié)流FileInputStream,F(xiàn)ileOutputStream和字符流FileWriter,OutputStreamWriter并熟練運(yùn)用
掌握File類(lèi)型的構(gòu)造,獲取和創(chuàng)建刪除
3、多線(xiàn)程
掌握Thread類(lèi)型
掌握多線(xiàn)程的程序運(yùn)行原理及并發(fā)并行
4、異常
掌握異常的工作原理并且掌握異常的處理方式
二、Java虛擬機(jī)
1、JVM內(nèi)存區(qū)域劃分
掌握J(rèn)VM內(nèi)存參數(shù)設(shè)置及調(diào)優(yōu)
掌握程序計(jì)數(shù)器、堆、虛擬機(jī)棧、本地方法棧、方法區(qū)(Java8已移除)、元空間(Java8新增)的作用及基本原理
2、類(lèi)加載
掌握類(lèi)的加載階段:加載、鏈接(驗(yàn)證、準(zhǔn)備、解析)初始化、使用、卸載。
掌握類(lèi)加載器分類(lèi)及其應(yīng)用程序類(lèi)加載器、自定義加載器。
三、J2EE
掌握Servlet內(nèi)置對(duì)象、動(dòng)作及相關(guān)特點(diǎn)和工作原理
掌握Spring框架的IOC和AOP實(shí)現(xiàn)原理(反射和動(dòng)態(tài)代理)
至少掌握一個(gè)MVC框架(Spring MVC)的工作原理,并熟練運(yùn)用。
四、數(shù)據(jù)結(jié)構(gòu)和算法
掌握線(xiàn)性表和樹(shù)的特點(diǎn)并熟練運(yùn)用
掌握常用的排序和查找算法:插入排序(希爾排序)、選擇排序(堆排序)、交換排序(冒泡排序)順序查找、二分查找、哈希查找
熟練運(yùn)用排序和查找思想解決編程問(wèn)題
五、數(shù)據(jù)庫(kù)
掌握SQL語(yǔ)句的編寫(xiě)
掌握數(shù)據(jù)庫(kù)的優(yōu)化(SQL層面和表設(shè)計(jì)層面)
至少掌握一款數(shù)據(jù)庫(kù)產(chǎn)品
熟悉高并發(fā)、大數(shù)據(jù)情況下的數(shù)據(jù)庫(kù)開(kāi)發(fā)。
六、Web技術(shù)
掌握AJAX的工作原理。
至少熟悉一款JS框架(比如JQuery)
七、Linux
熟練運(yùn)用Linux常見(jiàn)命令
熟悉Linux操作系統(tǒng)基本概念及特點(diǎn)
八、正則表達(dá)式
掌握常見(jiàn)正則表達(dá)式