下面就簡單說下自己的一些淺薄的經(jīng)驗吧,希望能為屏幕前的你提供一點(diǎn)的啟發(fā)。文章會先將經(jīng)常問到的問題一一列出來搬瑰,等以后有時間了我會給出參考答案适贸,當(dāng)然其中一些答案只是小編現(xiàn)有技術(shù)上的一些個人想法患蹂,僅供參考冗美,如果有什么不妥的地方還望指出想罕。
簡歷篇
建議簡歷中按照圖中1的方式去寫滔金,讓簡歷篩選者一眼就能看到你項目中的亮點(diǎn)(圖中僅供參考)
面試篇
(1)從java基礎(chǔ)說起
1.HashMap和HashTable兩個類的底層實現(xiàn)屎蜓,HashTable的get方法加鎖了嗎痘昌?為什么?兩者異同點(diǎn)是什么炬转?ConcurrentHashMap的底層實現(xiàn)辆苔,和HashTable相比,為什么性能更高扼劈。
2.ArrayList和LinkedList區(qū)別驻啤,實現(xiàn)方式
3.jvm是如何管理內(nèi)存的?垃圾回收算法有哪些荐吵?垃圾回收器有哪些骑冗?如何使用?什么是垃圾先煎?可達(dá)性算法和引用計數(shù)算法了解嗎贼涩?什么是GCRoot?如果對象一直創(chuàng)建榨婆,直到發(fā)生fullgc磁携,說一下這整個過程。minor gc和full gc都會造成stop the world嗎良风?如何降低fullgc發(fā)生的次數(shù)谊迄?
4.說一下雙親委派機(jī)制,jvm為什么要使用雙親委派機(jī)制烟央?類加載器可能被繼承嗎统诺?可以出現(xiàn)違背雙親委派機(jī)制的情況嗎?如果有疑俭,解釋為什么要違背雙親委派機(jī)制粮呢?
(2)多線程問題
1.如何正確終止一個線程?
2.實際工作中是如何使用多線程的钞艇?用多線程方式去求一個數(shù)組的和啄寡。寫一個生產(chǎn)者消費(fèi)者模型
3.線程池用過嗎?解釋下線程池的重要參數(shù)哩照,阻塞隊列用過哪些挺物?底層是怎么實現(xiàn)的?task不斷的涌現(xiàn)飘弧,說一下線程池是如何消費(fèi)任務(wù)的(什么時候創(chuàng)建線程识藤,銷毀線程)砚著?
4.synchronized和lock的區(qū)別,使用時的注意點(diǎn)在哪痴昧?CyclicBarrier和CountDownLatch分別在什么情況下使用稽穆?多線程之間如何通信?
5.volitile的語義赶撰,jdk為我們提供了哪些基本數(shù)據(jù)類型的原子操作類舌镶?AtomicInteger是如何實現(xiàn)原子遞增的?CAS有什么缺點(diǎn)扣囊?如何避免乎折?
(3)框架篇
1.spring是如何管理bean的?spring管理的bean的生命周期是什么侵歇?spring如何解決循環(huán)依賴骂澄?
2.spring為我們提供了哪些注解用于AOP?他們的執(zhí)行順序如何惕虑?
3.spring的事務(wù)傳播機(jī)制是什么坟冲?事務(wù)的隔離級別是什么?
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ù)的隔離級別,innodb是如何解決幻讀的论衍?mvvc(多版本事務(wù)控制)了解嗎瑞佩?
4.如何分庫分表?
5.如何查看sql的執(zhí)行計劃坯台,如果有sql沒有走預(yù)期的索引怎么辦炬丸?
(5)中間件篇
1、項目中如何使用redis的捂人,redis支持哪幾種數(shù)據(jù)類型御雕?持久化機(jī)制有哪些?分別有什么用滥搭,什么異同點(diǎn)酸纲?aof文件會一直增大嗎?redis如何做分布式鎖的瑟匆?redis支持事務(wù)嗎闽坡,如果支持是怎么實現(xiàn)的?底層原理是什么愁溜?和傳統(tǒng)數(shù)據(jù)庫提供的事務(wù)有什么區(qū)別疾嗅?
2、mongodb是怎么使用的冕象?技術(shù)選型的時候為什么選擇mongodb代承?mongodb是如何支持事務(wù)的,多文檔事務(wù)是在什么版本開始支持的渐扮?
3论悴、memcached如何使用,底層的內(nèi)存管理是什么樣子的墓律?
4膀估、rabbitmq、activemq耻讽、kafka有什么區(qū)別察纯?怎么做技術(shù)選型?底層實現(xiàn)了什么協(xié)議针肥?
5饼记、zookeeper是什么?節(jié)點(diǎn)類型有哪幾種祖驱?了解paxos協(xié)議嗎握恳?了解ZAB算法嗎?zookeeper是如何保證事務(wù)的捺僻?用zookeeper如何實現(xiàn)分布式鎖乡洼?
(6)linux篇
1、能進(jìn)行shell編程嗎匕坯?有沒有過實際經(jīng)驗束昵?
2、直接將文件B.TXT中的所有123替換成345
sed -i 's/123/456/g' B.TXT
3葛峻、寫出命令锹雏。統(tǒng)計日志文件weblog.log中 今天14:00~15:00的記錄條數(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礁遵、二面和三面之后轻绞,面試官一定會問,你還有什么要問我的嗎佣耐?
這個時候請一定不要說“沒有了”政勃,如果你覺的面試的還可以的話,請務(wù)必問以下幾個問題(1)如果我有幸進(jìn)入項目組兼砖,我的任務(wù)是什么奸远?會面臨哪些技術(shù)難題?(2)部門效益怎么樣讽挟?公司對部門看好嗎懒叛?
希望可以給各位帶來一些幫助,如果有什么不妥的地方盡管提出來就好耽梅,畢竟人無完人薛窥,祝大家都能找到自己心儀的offer。
最后給你們推薦一個群眼姐,如果你還想提升自己
歡迎加入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)的解答
不懂的問題都可以在本群提出來,之后還會有職業(yè)生涯規(guī)劃以及面試指導(dǎo)?