{eval=Array;=+count(Array);}
很久沒有面試過一年Java開發(fā)經(jīng)驗(yàn)的小伙伴了,那如果你是一年開發(fā)經(jīng)驗(yàn),并且已經(jīng)通過了前面的初篩,也就是已經(jīng)約好面試時(shí)間了。
現(xiàn)在開始咱們的面試。
面試官:您先自我介紹一下吧~
候選人:我畢業(yè)于xx大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),工作經(jīng)驗(yàn)一年,工作期間主要負(fù)責(zé)xx項(xiàng)目的xx功能開發(fā)。熟悉的技術(shù)棧有Java基礎(chǔ),集合,多線程等知識(shí),熟練使用SpringBoot框架。
PS:廢話不要多說,說你真實(shí)的開發(fā)項(xiàng)目經(jīng)驗(yàn)和你真正熟悉的技能棧。
面試官:ok,好的,那咱們先聊點(diǎn)Java基礎(chǔ)吧,HashSet在項(xiàng)目中用過嗎?它的底層實(shí)現(xiàn)你了解嗎?
候選人:HashSet底層是HashMap,HashSet里的每一個(gè)元素就是HashMap里面的key。
面試官:那比如現(xiàn)在我要裝一個(gè)User對(duì)象進(jìn)去,比如Set<User> users = new HashSet<>(10);那么對(duì)于這個(gè)User對(duì)象有沒有什么要求?
候選人:需要重寫hashCode和equals方法。
面試官:ok,為什么要重寫hashCode和equals方法呢?
候選人:首先,HashSet的特性是不可重復(fù)的并且是無序的。因?yàn)樗牡讓邮荋ashMap實(shí)現(xiàn)的,HashMap的key就是HashSet的元素,所以他無法保證有序。那不可重復(fù)的就是當(dāng)我們put一個(gè)KV數(shù)據(jù)到HashMap中去的時(shí)候,首先需要計(jì)算這個(gè)key的hashcode,然后在和當(dāng)前hashMap的容量-1作與元算,即hashcode(key) & (n-1)來計(jì)算出他所在hashMap數(shù)組中的下標(biāo)位置,這就是為什么要實(shí)現(xiàn)它的hashcode方法。那為什么還要實(shí)現(xiàn)equals方法呢?因?yàn)閔ashcode方法存在哈希沖突,無法決定一個(gè)對(duì)象的唯一性。
ps:能說到這你就成功了一半了!但是還沒結(jié)束,因?yàn)槊嬖嚬傧胫滥愕降琢私舛嗌伲?/p>
接下來會(huì)是什么問題呢?
先就這些吧,上面你能聊到哪就聊到哪,都是Java基礎(chǔ),不會(huì)了咱就停止,換一個(gè)方向~
后面會(huì)在問你數(shù)據(jù)庫(kù)方面的知識(shí),比如Innodb存儲(chǔ)引擎的實(shí)現(xiàn)原理,B+樹,為什么不用B樹、二叉樹等等。
什么是聚集索引、什么是非聚集索引、覆蓋索引?回表是什么意思?
還有很多數(shù)據(jù)庫(kù)的知識(shí),有一句話叫做:“你會(huì)的越多,你不會(huì)的越多!”
如果上面你都o(jì)k,不需要問你項(xiàng)目經(jīng)驗(yàn),來干活吧!畢竟你只有一年工作經(jīng)驗(yàn),沒啥項(xiàng)目可問的,又不是你主導(dǎo)的。
實(shí)在上面答的不好,只能問問你項(xiàng)目中的開發(fā)思路怎么樣了,會(huì)嘗試找你開發(fā)功能的漏洞,看你怎么臨場(chǎng)發(fā)揮,說說你的思路,看看你的邏輯思維是否嚴(yán)謹(jǐn)。
以上,看看是否你都會(huì),如果你都會(huì),抓緊學(xué)習(xí)更多的知識(shí)去!如果你不會(huì),抓緊學(xué)習(xí)更多的知識(shí)去!學(xué)無止盡~
上面的那些,由淺入深,五年十年的都可以問,有人說工作很多年的沒必要問這些基礎(chǔ),我不這么認(rèn)為。如果你開發(fā)多年,這些基礎(chǔ)我認(rèn)為你應(yīng)該是深入骨髓的,無須準(zhǔn)備便可脫口而出的,其他任何理由都是借口。
1、java基礎(chǔ)知識(shí)是重點(diǎn),例如集合、多線程、IO等基礎(chǔ)知識(shí)的掌握程度。
2、框架方面,例如spring,mybatis,springboot等使用的熟練程度和對(duì)其理解程度。
3、部署方面,例如tomcat、linux等了解多少。
4、數(shù)據(jù)庫(kù)方面,例如基本的增刪改查,對(duì)sql優(yōu)化了解多少,對(duì)索引了解多少
5、解決問題方面,例如:說說你遇到的很難處理的問題,怎么解決這個(gè)問題的?
6、對(duì)項(xiàng)目的熟悉程度,這個(gè)是看你是否真的做過項(xiàng)目。
注:看過源碼,了解底層,對(duì)框架的原理理解很深會(huì)是加分項(xiàng)。
問點(diǎn)JAVA基礎(chǔ)知識(shí),偏向規(guī)范類的
問點(diǎn)你簡(jiǎn)歷上做過的內(nèi)容
問點(diǎn)數(shù)據(jù)庫(kù)基礎(chǔ),多表查詢,匯總之類的
問點(diǎn)框架實(shí)際用到的(結(jié)合將要安排你的工作內(nèi)容問)
說明:一年工作經(jīng)驗(yàn)太深的內(nèi)容沒什么可問的。不想面試造火箭,工作擰螺絲的那種。既然篩選讓來面試,你之前一年多工作經(jīng)歷很契合現(xiàn)在公司的業(yè)務(wù),所以問點(diǎn)實(shí)際的。性格好,好培養(yǎng),腳踏實(shí)地愛學(xué)習(xí)就可以。
當(dāng)然了,每個(gè)公司對(duì)一年開發(fā)經(jīng)驗(yàn)的工程師所必須掌握的技能定義是不一樣。
作為面試官,就拿我們公司來說吧:首先重要的是邏輯思維要清晰,其次我們?cè)僬f技能吧。
都是虛擬機(jī)之類的,我面試神舟航天的實(shí)施,問的都是很底層的東西,還有學(xué)好linux,數(shù)據(jù)庫(kù),開發(fā)的話應(yīng)該會(huì)問一些框架吧,分公司,要是普通公司問ssm,要是好一點(diǎn)可能會(huì)springcloud之類的,還是看個(gè)人能力,因?yàn)槎疾徽?huì),還得進(jìn)企業(yè)去鍛煉,建議一般不要從事軟件工程專業(yè)。
java的基礎(chǔ)方面的:
String,StringBuffer,StringBudilder區(qū)別
ArrayList,vector 等的區(qū)別
hashMap,hashTable 的區(qū)別
多線程的實(shí)現(xiàn)方式和方法了
傳參數(shù)方面的 :
考傳的是本身還是副本
如 a(String value); a方法的value參數(shù)是傳本身還是副本
框架知識(shí):
比如spring 依賴注入,事務(wù)深入點(diǎn)的話 攔截器等
db方面的:
簡(jiǎn)單考下你的sql , 可能會(huì)寫幾個(gè)表 要查什么讓你寫sql 主要考多表連接查詢,分組,分組后的查詢,排序,取最大最小之類的 看你sql熟練否
有沒有找到住的地方?
和家里人打過電話要出來工作了吧?
0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答0
回答