必看:BAT架構(gòu)師java面試經(jīng)驗(yàn)總結(jié)

下面就簡(jiǎn)單說下自己的一些淺薄的經(jīng)驗(yàn)吧,希望能為屏幕前的你提供一點(diǎn)的啟發(fā)。文章會(huì)先將經(jīng)常問到的問題一一列出來,等以后有時(shí)間了我會(huì)給出參考答案,當(dāng)然其中一些答案只是小編現(xiàn)有技術(shù)上的一些個(gè)人想法,僅供參考,如果有什么不妥的地方還望指出。

簡(jiǎn)歷篇

建議簡(jiǎn)歷中按照?qǐng)D中1的方式去寫,讓簡(jiǎn)歷篩選者一眼就能看到你項(xiàng)目中的亮點(diǎn)(圖中僅供參考)

面試篇

(1)從java基礎(chǔ)說起

1.HashMap和HashTable兩個(gè)類的底層實(shí)現(xiàn),HashTable的get方法加鎖了嗎?為什么??jī)烧弋愅c(diǎn)是什么?ConcurrentHashMap的底層實(shí)現(xiàn),和HashTable相比,為什么性能更高。

2.ArrayList和LinkedList區(qū)別,實(shí)現(xiàn)方式

3.jvm是如何管理內(nèi)存的?垃圾回收算法有哪些?垃圾回收器有哪些?如何使用?什么是垃圾?可達(dá)性算法和引用計(jì)數(shù)算法了解嗎?什么是GCRoot?如果對(duì)象一直創(chuàng)建,直到發(fā)生fullgc,說一下這整個(gè)過程。minor gc和full gc都會(huì)造成stop the world嗎?如何降低fullgc發(fā)生的次數(shù)?

4.說一下雙親委派機(jī)制,jvm為什么要使用雙親委派機(jī)制?類加載器可能被繼承嗎?可以出現(xiàn)違背雙親委派機(jī)制的情況嗎?如果有,解釋為什么要違背雙親委派機(jī)制?

(2)多線程問題

1.如何正確終止一個(gè)線程?

2.實(shí)際工作中是如何使用多線程的?用多線程方式去求一個(gè)數(shù)組的和。寫一個(gè)生產(chǎn)者消費(fèi)者模型

3.線程池用過嗎?解釋下線程池的重要參數(shù),阻塞隊(duì)列用過哪些?底層是怎么實(shí)現(xiàn)的?task不斷的涌現(xiàn),說一下線程池是如何消費(fèi)任務(wù)的(什么時(shí)候創(chuàng)建線程,銷毀線程)?

4.synchronized和lock的區(qū)別,使用時(shí)的注意點(diǎn)在哪?CyclicBarrier和CountDownLatch分別在什么情況下使用?多線程之間如何通信?

5.volitile的語義,jdk為我們提供了哪些基本數(shù)據(jù)類型的原子操作類?AtomicInteger是如何實(shí)現(xiàn)原子遞增的?CAS有什么缺點(diǎn)?如何避免?

(3)框架篇

1.spring是如何管理bean的?spring管理的bean的生命周期是什么?spring如何解決循環(huán)依賴?

2.spring為我們提供了哪些注解用于AOP?他們的執(zhí)行順序如何?

3.spring的事務(wù)傳播機(jī)制是什么?事務(wù)的隔離級(jí)別是什么?

4.你們的程序是如何處理異常的?

5.springmvc的執(zhí)行過程,mybatis的執(zhí)行過程

6.了解哪些springcloud組件?微服務(wù)和soa有什么區(qū)別?

(4)數(shù)據(jù)庫篇

1.mysql中索引的算法有幾種?什么情況下使用索引?如果有sql執(zhí)行比較慢,該怎么解決?

2.mysql中的innodb和mysaim有什么區(qū)別?

事務(wù)、外鍵、hash結(jié)構(gòu)索引的支持、全文索引的支持、鎖的粒度、物理文件異同

3.事務(wù)的隔離級(jí)別,innodb是如何解決幻讀的?mvvc(多版本事務(wù)控制)了解嗎?

4.如何分庫分表?

5.如何查看sql的執(zhí)行計(jì)劃,如果有sql沒有走預(yù)期的索引怎么辦?

(5)中間件篇

1、項(xiàng)目中如何使用redis的,redis支持哪幾種數(shù)據(jù)類型?持久化機(jī)制有哪些?分別有什么用,什么異同點(diǎn)?aof文件會(huì)一直增大嗎?redis如何做分布式鎖的?redis支持事務(wù)嗎,如果支持是怎么實(shí)現(xiàn)的?底層原理是什么?和傳統(tǒng)數(shù)據(jù)庫提供的事務(wù)有什么區(qū)別?

2、mongodb是怎么使用的?技術(shù)選型的時(shí)候?yàn)槭裁催x擇mongodb?mongodb是如何支持事務(wù)的,多文檔事務(wù)是在什么版本開始支持的?

3、memcached如何使用,底層的內(nèi)存管理是什么樣子的?

4、rabbitmq、activemq、kafka有什么區(qū)別?怎么做技術(shù)選型?底層實(shí)現(xiàn)了什么協(xié)議?

5、zookeeper是什么?節(jié)點(diǎn)類型有哪幾種?了解paxos協(xié)議嗎?了解ZAB算法嗎?zookeeper是如何保證事務(wù)的?用zookeeper如何實(shí)現(xiàn)分布式鎖?

(6)linux篇

1、能進(jìn)行shell編程嗎?有沒有過實(shí)際經(jīng)驗(yàn)?

2、直接將文件B.TXT中的所有123替換成345

sed -i 's/123/456/g' B.TXT

3、寫出命令。統(tǒng)計(jì)日志文件weblog.log中 今天14:00~15:00的記錄條數(shù)(時(shí)間格式:2011-01-01—15:30:11)

sum14=`grep -c "2011-01-01-14" weblog.log`

sum15=`grep -c "2011-01-01-15" weblog.log`

echo $[$sum14+$sum15]

4、文件A.txt內(nèi)容為"12:34:68",只輸出A.txt中的"34"

awk -F ":" '{print $2}' A.txt

面試后

1、二面和三面之后,面試官一定會(huì)問,你還有什么要問我的嗎?

這個(gè)時(shí)候請(qǐng)一定不要說“沒有了”,如果你覺的面試的還可以的話,請(qǐng)務(wù)必問以下幾個(gè)問題(1)如果我有幸進(jìn)入項(xiàng)目組,我的任務(wù)是什么?會(huì)面臨哪些技術(shù)難題?(2)部門效益怎么樣?公司對(duì)部門看好嗎?

希望可以給各位帶來一些幫助,如果有什么不妥的地方盡管提出來就好,畢竟人無完人,祝大家都能找到自己心儀的offer。

最后給你們推薦一個(gè)群,如果你還想提升自己

歡迎加入Java技術(shù)交流群:659270626

群內(nèi)提供免費(fèi)的學(xué)習(xí)指導(dǎo),提供Spring源碼、MyBatis、Netty、Redis,Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx、分布式、高并發(fā)、性能調(diào)優(yōu)等架構(gòu)技術(shù)架構(gòu)資料以及免費(fèi)的解答

不懂的問題都可以在本群提出來,之后還會(huì)有職業(yè)生涯規(guī)劃以及面試指導(dǎo)?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容