Java程序員從阿里面試回來(lái),這些面試題你們會(huì)嗎?
前不久剛從阿里面試回來(lái),為了這場(chǎng)面試可以說(shuō)準(zhǔn)備了一個(gè)半月,做的準(zhǔn)備就是刷題和看視頻看書充實(shí)自己的技術(shù),話說(shuō)是真難啊,不過(guò)還算順利拿到了offer,有很多面試題我已經(jīng)記不起來(lái)了,這些是當(dāng)天回家整理好的,下面我來(lái)跟大家一起分享一下。
首先我們需要明白一個(gè)事實(shí),招聘的一個(gè)很關(guān)鍵的因素是在給自己找未來(lái)的同事,同級(jí)別下要找比自己優(yōu)秀的人,面試是一個(gè)雙向選擇的過(guò)程,人家在面試你的時(shí)候,你也在打量這家企業(yè)。
一、開場(chǎng)白
-
簡(jiǎn)單的介紹一下自己的工作經(jīng)歷與職責(zé),在?;蛘咴诠ぷ髦兄饕墓ぷ鲀?nèi)容,主要負(fù)責(zé)的內(nèi)容;(你的信息一清二白的寫在簡(jiǎn)歷上,這個(gè)主要為了緩解面試者的壓力)
-
介紹下自己最滿意的,有技術(shù)亮點(diǎn)的項(xiàng)目或平臺(tái),重點(diǎn)介紹下自己負(fù)責(zé)那部分的技術(shù)細(xì)節(jié);(主要考察應(yīng)聘者對(duì)自己做過(guò)的事情是否有清晰的描述,判斷做的事情的復(fù)雜度)
二、Java多線程
-
線程池的原理,為什么要?jiǎng)?chuàng)建線程池?創(chuàng)建線程池的方式;
-
線程的生命周期,什么時(shí)候會(huì)出現(xiàn)僵死進(jìn)程;
-
說(shuō)說(shuō)線程安全問(wèn)題,什么實(shí)現(xiàn)線程安全,如何實(shí)現(xiàn)線程安全;
-
創(chuàng)建線程池有哪幾個(gè)核心參數(shù)? 如何合理配置線程池的大?。?/p>
-
volatile、ThreadLocal的使用場(chǎng)景和原理;
-
ThreadLocal什么時(shí)候會(huì)出現(xiàn)OOM的情況?為什么?
-
synchronized、volatile區(qū)別、synchronized鎖粒度、模擬死鎖場(chǎng)景、原子性與可見(jiàn)性;
三、JVM相關(guān)
-
JVM內(nèi)存模型,GC機(jī)制和原理;
-
GC分哪兩種,Minor GC 和Full GC有什么區(qū)別?什么時(shí)候會(huì)觸發(fā)Full GC?分別采用什么算法?
-
JVM里的有幾種classloader,為什么會(huì)有多種?
-
什么是雙親委派機(jī)制?介紹一些運(yùn)作過(guò)程,雙親委派模型的好處;
-
什么情況下我們需要破壞雙親委派模型;
-
常見(jiàn)的JVM調(diào)優(yōu)方法有哪些?可以具體到調(diào)整哪個(gè)參數(shù),調(diào)成什么值?
-
JVM虛擬機(jī)內(nèi)存劃分、類加載器、垃圾收集算法、垃圾收集器、class文件結(jié)構(gòu)是如何解析的;
四、Java擴(kuò)展篇
-
紅黑樹的實(shí)現(xiàn)原理和應(yīng)用場(chǎng)景;
-
NIO是什么?適用于何種場(chǎng)景?
-
Java9比Java8改進(jìn)了什么;
-
HashMap內(nèi)部的數(shù)據(jù)結(jié)構(gòu)是什么?底層是怎么實(shí)現(xiàn)的?(還可能會(huì)延伸考察ConcurrentHashMap與HashMap、HashTable等,考察對(duì)技術(shù)細(xì)節(jié)的深入了解程度);
-
說(shuō)說(shuō)反射的用途及實(shí)現(xiàn),反射是不是很慢,我們?cè)陧?xiàng)目中是否要避免使用反射;
-
說(shuō)說(shuō)自定義注解的場(chǎng)景及實(shí)現(xiàn);
-
List 和 Map 區(qū)別,Arraylist 與 LinkedList 區(qū)別,ArrayList 與 Vector 區(qū)別;
五、Spring相關(guān)
-
Spring AOP的實(shí)現(xiàn)原理和場(chǎng)景?
-
Spring bean的作用域和生命周期;
-
Spring Boot比Spring做了哪些改進(jìn)? Spring 5比Spring4做了哪些改進(jìn);
-
如何自定義一個(gè)Spring Boot Starter?
-
Spring IOC是什么??jī)?yōu)點(diǎn)是什么?
-
SpringMVC、動(dòng)態(tài)代理、反射、AOP原理、事務(wù)隔離級(jí)別;
六、中間件篇
-
Dubbo完整的一次調(diào)用鏈路介紹;
-
Dubbo支持幾種負(fù)載均衡策略?
-
Dubbo Provider服務(wù)提供者要控制執(zhí)行并發(fā)請(qǐng)求上限,具體怎么做?
-
Dubbo啟動(dòng)的時(shí)候支持幾種配置方式?
-
了解幾種消息中間件產(chǎn)品?各產(chǎn)品的優(yōu)缺點(diǎn)介紹;
-
消息中間件如何保證消息的一致性和如何進(jìn)行消息的重試機(jī)制?
-
Spring Cloud熔斷機(jī)制介紹;
-
Spring Cloud對(duì)比下Dubbo,什么場(chǎng)景下該使用Spring Cloud?
七、數(shù)據(jù)庫(kù)篇
-
鎖機(jī)制介紹:行鎖、表鎖、排他鎖、共享鎖;
-
樂(lè)觀鎖的業(yè)務(wù)場(chǎng)景及實(shí)現(xiàn)方式;
-
事務(wù)介紹,分布式事物的理解,常見(jiàn)的解決方案有哪些,什么事兩階段提交、三階段提交;
-
MySQL記錄binlog的方式主要包括三種模式?每種模式的優(yōu)缺點(diǎn)是什么?
-
MySQL鎖,悲觀鎖、樂(lè)觀鎖、排它鎖、共享鎖、表級(jí)鎖、行級(jí)鎖;
-
分布式事務(wù)的原理2階段提交,同步\異步\阻塞\非阻塞;
-
數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別,MySQL默認(rèn)的隔離級(jí)別、Spring如何實(shí)現(xiàn)事務(wù)、
-
JDBC如何實(shí)現(xiàn)事務(wù)、嵌套事務(wù)實(shí)現(xiàn)、分布式事務(wù)實(shí)現(xiàn);
-
SQL的整個(gè)解析、執(zhí)行過(guò)程原理、SQL行轉(zhuǎn)列;
八、Redis
-
Redis為什么這么快?redis采用多線程會(huì)有哪些問(wèn)題?
-
Redis支持哪幾種數(shù)據(jù)結(jié)構(gòu);
-
Redis跳躍表的問(wèn)題;
-
Redis單進(jìn)程單線程的Redis如何能夠高并發(fā)?
-
Redis如何使用Redis實(shí)現(xiàn)分布式鎖?
-
Redis分布式鎖操作的原子性,Redis內(nèi)部是如何實(shí)現(xiàn)的?
九、其他
看過(guò)哪些源代碼?然后會(huì)根據(jù)你說(shuō)的源碼問(wèn)一些細(xì)節(jié)的問(wèn)題?(這里主要考察面試者是否對(duì)技術(shù)有鉆研的精神,還是只停留在表面,還是背了幾道面經(jīng),這個(gè)對(duì)于很多有強(qiáng)迫癥的面試官,如果你連源碼都沒(méi)看過(guò),基本上是會(huì)pass掉的,比如我也是這樣的!)
項(xiàng)目中遇到了哪些比較有挑戰(zhàn)性的問(wèn)題,是如何解決的;(這個(gè)很有爭(zhēng)議,一方面是你連一個(gè)復(fù)雜的問(wèn)題都解決不了,要你過(guò)來(lái)干什么,還有就是我的能力牛逼啊,但是公司沒(méi)有業(yè)務(wù)場(chǎng)景讓我展示啊,這個(gè)就看你遇到的面試官了,祝你好運(yùn)?。?/p>
金九銀十這個(gè)段時(shí)間面試的比較多吧,希望這些面試題能夠幫大家了解一下互聯(lián)網(wǎng)的面試題,然后梳理一下自己的技術(shù),學(xué)無(wú)止境一起共勉吧。