java是一門歷史悠久的編程語(yǔ)言,可以毫無(wú)爭(zhēng)議的說(shuō),java是最主流的編程語(yǔ)言之一.全球有1200萬(wàn)以上的java程序猿以及海量的設(shè)備,還有無(wú)所不能的java生態(tài)圈.
我所知道的諸如阿里,京東,百度,騰訊,美團(tuán),去哪兒等互聯(lián)網(wǎng)公司,基本都是以java為首要編程語(yǔ)言的.即使在最新的云計(jì)算領(lǐng)域,java仍然是AWS,google app engine等平臺(tái)上,使用最多的編程語(yǔ)言,甚至在微軟的Azure云上,java也已微弱劣勢(shì)排在前三,所以,在這些大公司的面試中,基本都會(huì)以java為切入點(diǎn),考評(píng)一個(gè)面試者的基本能力.
應(yīng)聘初級(jí),中級(jí)java工程師,通常只要求扎實(shí)的java和計(jì)算機(jī)科學(xué)基礎(chǔ),掌握主流開源框架的使用,java高級(jí)工程師或者技術(shù)專家,則往往全面考察java io/nio,并發(fā),虛擬機(jī)等,不僅僅是了解,更要求對(duì)底層源代碼層面的掌握,并對(duì)分布式,安全,性能等領(lǐng)域能力有進(jìn)一步的要求.
我在oracle已經(jīng)工作了近七年,負(fù)責(zé)過(guò)北京java核心類庫(kù),國(guó)際化,分發(fā)服務(wù)等技術(shù)團(tuán)隊(duì)的組建,面試過(guò)從初級(jí)到非常資深的java開發(fā)工程師.由于java組工作任務(wù)的特點(diǎn),我非常重視面試者的計(jì)算機(jī)科學(xué)基礎(chǔ)和編程語(yǔ)言的理解深度,我甚至不要求面試者非要精通java,如果對(duì)c/c++等其他語(yǔ)言能過(guò)掌握的非常系統(tǒng)和深入,也符合需求的.
工作多年以及在面試中,我經(jīng)常能體會(huì)到,有些面試者確實(shí)是努力工作,但坦白說(shuō)表現(xiàn)出的能力水平不足以通過(guò)面試,通常有兩方面的原因;
"知其然不知其所以然"做了多年技術(shù),開發(fā)了很多業(yè)務(wù)應(yīng)用,但似乎并未思考過(guò)種種技術(shù)背后的邏輯,坦白說(shuō),我并不放心吧具有一定深度的任務(wù)交給他.更重要的是我并不確定他未來(lái)的技術(shù)能力成長(zhǎng)潛力有多大.團(tuán)隊(duì)所從事的是公司核心產(chǎn)品,工作于基礎(chǔ)技術(shù)領(lǐng)域,我們不需要那些"差不多"或"還行"的代碼.而是需要達(dá)到一定水平的高質(zhì)量設(shè)計(jì)與實(shí)現(xiàn).我相信很多其他團(tuán)隊(duì)的要求會(huì)更多,更高.
知識(shí)碎片化,不成系統(tǒng).在面試中,面試者似乎無(wú)法完整,清晰的描述自己所開發(fā)的系統(tǒng),或者使用的相關(guān)技術(shù).比如,有的面試者,有一些并發(fā)編程經(jīng)驗(yàn),但對(duì)基本的并發(fā)類庫(kù)掌握卻并不扎實(shí),似乎覺(jué)得在用的時(shí)候進(jìn)行"面向搜索引擎的編程"就足夠了.這種情況下,我沒(méi)有信心這個(gè)面試者有高效解決復(fù)雜問(wèn)題,設(shè)計(jì)復(fù)雜系統(tǒng)的能力.
前人已經(jīng)掉過(guò)的坑,后來(lái)的同學(xué)就別前赴后繼了.
期初極客世界邀請(qǐng)我寫專欄,我心里懷疑其形式和必要性.經(jīng)典的書籍一大堆呀.網(wǎng)上也有所謂的面試寶典,為什么換需要我指手畫腳.
很難甄別出各種技術(shù)的核心價(jià)值與要點(diǎn).技術(shù)書籍如此龐雜,對(duì)于經(jīng)驗(yàn)有限的同學(xué),找到高效歸納自己知識(shí)體系的方法并不容易.
各種寶典更專注于問(wèn)題,解答大多點(diǎn)到為止,甚至答案準(zhǔn)確性都值得商榷,缺乏系統(tǒng)性的分析和舉一反三的講解.
我在極客時(shí)間推出這個(gè)專欄,就是為了讓更多沒(méi)有經(jīng)驗(yàn)或者經(jīng)驗(yàn)有限的開發(fā)者,在準(zhǔn)備面試時(shí);
少走彎路,利用有限的精力,能夠更高效的準(zhǔn)備和學(xué)習(xí).
提綱挈領(lǐng),在知識(shí)點(diǎn)講解的同時(shí),為你梳理一個(gè)相對(duì)完整的java開發(fā)技術(shù)能力圖譜,將基礎(chǔ)夯實(shí).
java面試題千奇百怪,有的面試官甚至以黑魔法一樣的態(tài)度,刨根問(wèn)底jvm底層,似乎不深挖jvm源代碼,不談?wù)動(dòng)?jì)算機(jī)指令,就是不愛(ài)學(xué)習(xí),這是仁者見(jiàn)仁智者見(jiàn)智的事情,我根據(jù)自己的經(jīng)驗(yàn)精選五大模塊共36題
五大模塊為
java基礎(chǔ);我會(huì)圍繞java語(yǔ)言基本特性和機(jī)制,有點(diǎn)帶面,讓你牢固構(gòu)建java基礎(chǔ)
java進(jìn)階,將圍繞并發(fā)編程,java虛擬機(jī)等領(lǐng)域,助你攻堅(jiān)大廠java面試的核心陣地
java應(yīng)用開發(fā)拓展;從數(shù)據(jù)庫(kù)編程,主流開源框架,分布式開發(fā),幫你掌握java開發(fā)的十八般兵器.
java安全基礎(chǔ);讓你理解常見(jiàn)的應(yīng)用安全問(wèn)題和處理方法,掌握如何寫出符合大廠規(guī)范的安全代碼.
java性能基礎(chǔ);你將掌握相關(guān)工具,方法論與基礎(chǔ)實(shí)踐.
世易時(shí)移,很多大家耳熟能詳?shù)膯?wèn)題其實(shí)在現(xiàn)代java中已經(jīng)發(fā)生根本性的改變但扎實(shí)的技術(shù)功底還是必要的.助你面試成功