隨著各個(gè)公司校招的開展,不少粵嵌學(xué)員的手上都拿了不止一個(gè)的offer。那么,作為Java開發(fā)程序員到底要掌握什么樣的技能才能高薪就業(yè)呢?在面試前如果你能掌握以下技能,拿下offer不是問題。
1. JAVA的基本語法
包括static、final、transient等關(guān)鍵字的作用,foreach循環(huán)的原理等。如果你去面試的時(shí)候,面試官問你static關(guān)鍵字有哪些作用,如果你答出static修飾變量、修飾方法,面試官會(huì)認(rèn)為你是合格。你答出靜態(tài)塊,面試官會(huì)認(rèn)為你不錯(cuò),如果你答出靜態(tài)內(nèi)部類面試官會(huì)認(rèn)為你很好,答出靜態(tài)導(dǎo)包面試官會(huì)對(duì)你很滿意,面試官能看出你非常熱衷研究技術(shù)。
2. 集合
非常重要,也是面試必問的內(nèi)容。大概就是List、Map、Set,各種實(shí)現(xiàn)類的底層實(shí)現(xiàn)原理,實(shí)現(xiàn)類的優(yōu)缺點(diǎn)。
集合重要的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的實(shí)現(xiàn)原理,當(dāng)然能掌握CopyOnWrite容器和Queue是再好不過的了。ConcurrentHashMap的問題在面試中問得特別多,關(guān)于ConcurrentHashMap,給同學(xué)們提供三點(diǎn)回答:
ConcurrentHashMap的鎖分段技術(shù)
ConcurrentHashMap的讀是否要加鎖,為什么
ConcurrentHashMap的迭代器是強(qiáng)一致性的迭代器還是弱一致性的迭代器
3. 設(shè)計(jì)模式
設(shè)計(jì)模式在工作中還是非常重要、非常有用的,二十多種設(shè)計(jì)模式中重點(diǎn)研究常用的十來種就可以了,面試中關(guān)于設(shè)計(jì)模式的問答主要是三個(gè)方向:
項(xiàng)目中用到了哪些設(shè)計(jì)模式,如何使用,常用設(shè)計(jì)模式的優(yōu)缺點(diǎn),畫出常用設(shè)計(jì)模式的UML圖等。
4. IO
IO分為File IO和Socket IO,F(xiàn)ile IO基本上是不會(huì)問的,平時(shí)會(huì)用就好了,另外記得File IO都是阻塞IO。
Socket IO是比較重要的一塊,要搞懂的是阻塞/非阻塞的區(qū)別、同步/異步的區(qū)別,借此理解阻塞IO、非阻塞IO、多路復(fù)用IO、異步IO這四種IO模型,Socket IO如何和這四種模型相關(guān)聯(lián)。深入一些的話,就會(huì)問NIO的原理、NIO屬于哪種IO模型、NIO的三大組成等等。提一句,NIO并不是嚴(yán)格意義上的非阻塞IO而應(yīng)該屬于多路復(fù)用IO,面試回答的時(shí)候要注意這個(gè)細(xì)節(jié),講到NIO會(huì)阻塞在Selector的select方法上會(huì)增加面試官對(duì)你的好感。
如果用過Netty,可能會(huì)問一些Netty的東西,畢竟這個(gè)框架基本屬于當(dāng)前的NIO框架了(Mina其實(shí)也不錯(cuò),不過總體來說還是比不上Netty的),大多數(shù)互聯(lián)網(wǎng)公司也都在用Netty。