本書(shū)是程序員面試寶典系列中的一冊(cè),也是上一本《程序員面試寶典》的姊妹書(shū)。
對(duì)于剛畢業(yè)的學(xué)生和正在找工作或?qū)⒁夜ぷ鞯某绦騿T來(lái)說(shuō),當(dāng)你應(yīng)聘一份程序設(shè)計(jì)、軟件開(kāi)發(fā)或者技術(shù)咨詢方面的工作時(shí),招聘方幾乎總會(huì)安排一次面試以考查你的程序設(shè)計(jì)能力。我們寫作這本書(shū)的目的就是希望能幫助大家順利地通過(guò)這類面試。
在軟件開(kāi)發(fā)方面,C++語(yǔ)言與Java語(yǔ)言互為瑜亮,所以筆試時(shí)企業(yè)一般會(huì)為程序員準(zhǔn)備兩套卷子(C++版或Java版),在上一本書(shū)中我們是完全以C系語(yǔ)言做案例介紹程序員在求職面試中所用的技巧和攻略的,而實(shí)際上作為程序員求職市場(chǎng)上另外半壁江山的Java程序員求職者們迫切需要適合自己的Java程序員面試寶典。
作為本書(shū)的作者,在過(guò)去的一年里,由于工作和項(xiàng)目的緣故經(jīng)常接觸面試和筆試,進(jìn)入公司后,也由一個(gè)被面試者轉(zhuǎn)而成為一個(gè)去考別人的主考官。其中感觸良多。筆者在上一本書(shū)《程序員面試寶典》中,是作為一個(gè)在校學(xué)生,對(duì)求職面試進(jìn)行研究和理解的。步入職場(chǎng)后,隨著經(jīng)驗(yàn)和閱歷的加深,眼界不再拘泥于語(yǔ)言的局限。之所以有很多像我一樣對(duì)計(jì)算機(jī)技術(shù)"狂熱"的人,其中一個(gè)原因恐怕是"編程"容易上手,花上個(gè)把月的時(shí)間就可以學(xué)到一些"高深"東西,并且可以編程炫耀一番。編程是創(chuàng)造的過(guò)程,看著自己的想法付諸實(shí)現(xiàn),總會(huì)有成就之感,即使程序編寫得很糟糕。編程也能處處體現(xiàn)征服困難的喜悅,每當(dāng)一個(gè)問(wèn)題被解決,心里面總有一種成就感,即使這個(gè)問(wèn)題早就有人解決過(guò)了。正因?yàn)槿绱耍腥藭?huì)花上大量時(shí)間,用盡各種技巧用Java編寫一個(gè)控件,而根本不去琢磨是否有一種智能客戶端的技術(shù),可以使用功能豐富的Windows控件。我們只能說(shuō)這個(gè)求職者只是優(yōu)秀的coder,但他的眼界還有待開(kāi)闊。
作為市場(chǎng)上唯一介紹Java程序員面試的著作,筆者不希望這本書(shū)成為上一本書(shū)的簡(jiǎn)單翻版。就編程而言,雖然Java和C++大相徑庭,但在更加有趣的語(yǔ)言后面的東西是設(shè)計(jì)模式、分析模式、求職解答、算法策略、信息化……也就是說(shuō)在新書(shū)中追求的是程序員求職背后的一些東西:對(duì)于技術(shù)的本質(zhì)理解。所以本書(shū)雖命名為Java程序員面試寶典,但不僅限于對(duì)Java技術(shù)單純講解。因?yàn)橹挥羞@樣,求職者才能不被語(yǔ)言所羈絆,而對(duì)于一個(gè)企業(yè)而言,除了看中求職者對(duì)語(yǔ)言的熟練程度,更看重工作經(jīng)驗(yàn)、大局觀和整體架構(gòu)等超脫語(yǔ)言的東西。
本書(shū)結(jié)構(gòu)是一種問(wèn)詢式的結(jié)構(gòu)。這樣不僅言簡(jiǎn)意賅,平易近人,而且可以容納更多的題目,真正達(dá)到寶典之效用。但本書(shū)又不簡(jiǎn)單作為一個(gè)題庫(kù)出現(xiàn),對(duì)一個(gè)類型的問(wèn)題不簡(jiǎn)單加以重復(fù)。本書(shū)采用循序漸進(jìn)的辦法:(1)將重要概念加以復(fù)習(xí);(2)完善解題思路,而不是僅僅給出答案;(3)給出完整可靠的答案,如果是可以驗(yàn)證的,要給出驗(yàn)證的結(jié)果;(4)綜合幾種解題方案,給出最優(yōu)解;(5)觸類旁通,給出語(yǔ)言背后的算法本質(zhì)性解釋。本書(shū)的解題思路不僅能夠讓大家知道什么是正確的解決方案,而且讓大家明白怎樣能獲得最佳方案。
《Java程序員面試寶典》不同于其他Java程序書(shū)籍的主要特點(diǎn)如下。
唯一性
本書(shū)是國(guó)內(nèi)市場(chǎng)上唯一介紹Java程序員求職面試技巧的圖書(shū)和案例庫(kù)。本書(shū)從實(shí)際出發(fā),將Java程序員面試中常會(huì)考到的一些編程基礎(chǔ)性問(wèn)題,比如final、super類、構(gòu)造函數(shù)等最易考到的基礎(chǔ)考點(diǎn),放在第2部分Java程序設(shè)計(jì)里面,希望能切切實(shí)實(shí)解決實(shí)際問(wèn)題。
深入性
面試題通過(guò)一道題考一個(gè)專類方面的能力。說(shuō)起Java,人們首先想到的是Java編程語(yǔ)言,然而事實(shí)上,Java是一種技術(shù),它由4個(gè)方面組成:Java編程語(yǔ)言、Java類文件格式、Java虛擬機(jī)和Java應(yīng)用程序接口(Java API)。從面試者的角度來(lái)講,一個(gè)測(cè)試也許能從多方面揭示應(yīng)試者的素質(zhì),至少你能了解應(yīng)試者所掌握類的水平。
市面上流行的面試書(shū)籍在此專業(yè)性的分類方面做得不夠,正因?yàn)槿绱耍禞ava程序員面試寶典》一書(shū)中追求的是程序員求職背后的一些東西:對(duì)于技術(shù)的本質(zhì)理解,而不僅限于對(duì)Java技術(shù)的單純講解。
廣泛性
本書(shū)包括但不僅限于Java程序員面試。對(duì)求職市場(chǎng)面試做了妥善分類后,將面試對(duì)象分為軟件開(kāi)發(fā)人員、網(wǎng)絡(luò)工程師、測(cè)試工程師和系統(tǒng)管理員(又包括操作系統(tǒng)管理員和數(shù)據(jù)庫(kù)管理員等)。實(shí)際上市面上流行的面試書(shū)籍僅對(duì)軟件開(kāi)發(fā)人員比較側(cè)重,而忽略網(wǎng)絡(luò)工程師和測(cè)試工程師,而現(xiàn)實(shí)情況是在諸如趨勢(shì)科技、思科等公司的面試中,對(duì)網(wǎng)絡(luò)方面的考題日趨增加,在銀行、金融公司的面試中對(duì)系統(tǒng)管理員方面的考題也占很大的比重。本書(shū)就這一方面給出詳細(xì)論斷,并結(jié)合大量考題分析題目特點(diǎn)給出應(yīng)試方案。本書(shū)將在這些方面做出改進(jìn),以適應(yīng)市場(chǎng)需求。
同時(shí)本書(shū)對(duì)外企經(jīng)??嫉降腢ML及設(shè)計(jì)模式內(nèi)容也做了深入的分析,并在上一本書(shū)《程序員面試寶典》的基礎(chǔ)上從本質(zhì)上詮釋面試的真諦。
真實(shí)性
本書(shū)的所有面試題都來(lái)自2005-2006年各大公司的面試題及培訓(xùn)資料,內(nèi)容非常新,可以算做面試者求職前的一份全真模擬。我們希望營(yíng)造一種真實(shí)的面試氛圍,同時(shí)作者希望把如何做好一個(gè)職業(yè)人,以及作者在職場(chǎng)上所獲得的實(shí)際感悟融會(huì)在書(shū)中,通過(guò)真情實(shí)感,娓娓道來(lái),指引讀者走上理想的工作崗位。本書(shū)不是一本萬(wàn)能書(shū)籍,但卻肯定是你工作求職的好助手、好伙伴!
編著者