阿里Java研發(fā)崗如何面試?
面試題如下
一面(主要是jvm,并發(fā),鎖,數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ))
1.自我介紹(說說自己的擅長及拿手的技術(shù))
2.自我介紹(說說自己的擅長及拿手的技術(shù))說說treemap和HashMap的區(qū)別?HashMap和ConcurrentHashMap的區(qū)別?
3.HashMap底層如何實(shí)現(xiàn)(JDK1.8有所改動(dòng))?
4.說說Hash的一致算法?
5.你知道的GC算法和回收策略有哪些?GC的機(jī)制是什么?
6.垃圾回收器的基本原理?是否可以立即回收內(nèi)存?怎么樣主動(dòng)的通知JVM進(jìn)行垃圾回收?
7.雙親委派模型機(jī)制
8.線程池創(chuàng)建的幾個(gè)核心構(gòu)造參數(shù)是什么?
9.樂觀鎖和悲觀鎖?可重入鎖和Synchronized?
10.他們都是可重入鎖嗎?哪個(gè)效率更高?
11.CountDownLaunch和Cylicbarrior的區(qū)別以及分別是在哪樣場景下使用的?
12.Http和Https的區(qū)別以及Https加密的方式?
13.以后的職業(yè)規(guī)劃和想法
二面(主要是數(shù)據(jù)庫,協(xié)議,Spring等)
1.自我介紹,聊下自己認(rèn)為做得很好的項(xiàng)目!
2.InnoDB支持的四種事務(wù)隔離級別名稱是什么? 之間的區(qū)別是什么?MySQL隔離級別是什么?
3.說說事務(wù)的特性?講講對慢查詢的分析?
4.你理解的BTree機(jī)制?
5.有哪些MySQL常用的優(yōu)化方法?
6.Http請求過程,DNS解析的過程?
7.三次握手和四次握手的過程?
8.B+樹索引和Hash索引之間的區(qū)別?
9.Spring IOC如何管理Bean之間的依賴關(guān)系,怎么樣避免循環(huán)依賴?
10.SpringBean創(chuàng)建過程中的設(shè)計(jì)模式?
11.說說AOP的實(shí)現(xiàn)原理?
12.Tomcat的基本架構(gòu)是什么?
三面(主要是緩存,高并發(fā),分布式)
1.自己項(xiàng)目中的總結(jié)的并發(fā)經(jīng)驗(yàn)
2.說說MySQL的鎖并發(fā)?加鎖的機(jī)制是什么?
3.高并發(fā)場景下如何防止死鎖,保證數(shù)據(jù)的一致性?
4.集群和負(fù)載均衡的算法與實(shí)現(xiàn)?
5.說說分庫與分表設(shè)計(jì)?
6.分庫分表帶來的分布式困境與對應(yīng)之策有哪些?
7.Redis和Setnx命令使如何實(shí)現(xiàn)分布式鎖的?使用Redis怎么進(jìn)行異步隊(duì)列?會有什么缺點(diǎn)?
8.緩存擊穿的概念和解決方案?
9.Redis的數(shù)據(jù)結(jié)構(gòu)? 線程模型? Redis的數(shù)據(jù)淘汰機(jī)制
10.Redis的數(shù)據(jù)一致性問題
11.MQ底層原理的實(shí)現(xiàn)?
12.阻塞隊(duì)列不用Java提供的該怎么實(shí)現(xiàn)?
13.講講負(fù)載均衡的原理?
14.如何實(shí)現(xiàn)高并發(fā)環(huán)境下的削峰、限流?
四面(主要項(xiàng)目入手)
1.講講項(xiàng)目中用到的中間件(Dubbo/MQ/Zookeeper/Redis/Kafka)?
2.什么情況下會造成雪崩?該怎么避免這種情況?
3.高并發(fā)架構(gòu)的設(shè)計(jì)思路?
4.以前的項(xiàng)目中遇到的問題和解決策略?
5.生活中遇到過哪些挫折?最后怎么解決的?
---------------------