阿里的面試官都喜歡問哪些技術問題?

java填坑路發表於2018-08-27

金九銀十是招聘的旺季,小編在這裡也給大家整理了一套阿里面試官最喜歡問的問題或者出場率較高的面試題,助校招或者社招路上的你一臂之力!

首先我們需要明白一個事實,招聘的一個很關鍵的因素是在給自己找未來的同事,同級別下要找比自己優秀的人,面試是一個雙向選擇的過程,也是一個將心比心去溝通的過程

就像我們有的人感覺自己很牛逼,但是拿不到offer,而其他的人菜的一筆,卻可以拿到offer,我們稱之為玄學offer,遇到這種情況大家也不要感覺到有什麼不可描述的心情,一切隨緣即可!

和以前一樣,只有問題沒有參考答案,需要各位小夥伴下來逐一學習!

一、開場白

簡單的介紹一下自己的工作經歷與職責,在校或者工作中主要的工作內容,主要負責的內容;(你的資訊一清二白的寫在簡歷上,這個主要為了緩解面試者的壓力)

介紹下自己最滿意的,有技術亮點的專案或平臺,重點介紹下自己負責那部分的技術細節;(主要考察應聘者對自己做過的事情是否有清晰的描述,判斷做的事情的複雜度)

二、Java多執行緒相關

執行緒池的原理,為什麼要建立執行緒池?建立執行緒池的方式;

執行緒的生命週期,什麼時候會出現僵死程式;

說說執行緒安全問題,什麼實現執行緒安全,如何實現執行緒安全;

建立執行緒池有哪幾個核心引數? 如何合理配置執行緒池的大小?

volatile、ThreadLocal的使用場景和原理;

ThreadLocal什麼時候會出現OOM的情況?為什麼?

synchronized、volatile區別、synchronized鎖粒度、模擬死鎖場景、原子性與可見性;

三、JVM相關

JVM記憶體模型,GC機制和原理;

GC分哪兩種,Minor GC 和Full GC有什麼區別?什麼時候會觸發Full GC?分別採用什麼演算法?

JVM裡的有幾種classloader,為什麼會有多種?

什麼是雙親委派機制?介紹一些運作過程,雙親委派模型的好處;

什麼情況下我們需要破壞雙親委派模型;

常見的JVM調優方法有哪些?可以具體到調整哪個引數,調成什麼值?

JVM虛擬機器記憶體劃分、類載入器、垃圾收集演算法、垃圾收集器、class檔案結構是如何解析的;

四、Java高階部分

紅黑樹的實現原理和應用場景;

NIO是什麼?適用於何種場景?

Java9比Java8改進了什麼;

HashMap內部的資料結構是什麼?底層是怎麼實現的?(還可能會延伸考察ConcurrentHashMap與HashMap、HashTable等,考察對技術細節的深入瞭解程度);

說說反射的用途及實現,反射是不是很慢,我們在專案中是否要避免使用反射;

說說自定義註解的場景及實現;

List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別;

五、Spring相關

Spring AOP的實現原理和場景?

Spring bean的作用域和生命週期;

Spring Boot比Spring做了哪些改進? Spring 5比Spring4做了哪些改進;

如何自定義一個Spring Boot Starter?

Spring IOC是什麼?優點是什麼?

SpringMVC、動態代理、反射、AOP原理、事務隔離級別;

六、中介軟體篇

Dubbo完整的一次呼叫鏈路介紹;

Dubbo支援幾種負載均衡策略?

Dubbo Provider服務提供者要控制執行併發請求上限,具體怎麼做?

Dubbo啟動的時候支援幾種配置方式?

瞭解幾種訊息中介軟體產品?各產品的優缺點介紹;

訊息中介軟體如何保證訊息的一致性和如何進行訊息的重試機制?

Spring Cloud熔斷機制介紹;

Spring Cloud對比下Dubbo,什麼場景下該使用Spring Cloud?

七、資料庫篇

鎖機制介紹:行鎖、表鎖、排他鎖、共享鎖;

樂觀鎖的業務場景及實現方式;

事務介紹,分散式事物的理解,常見的解決方案有哪些,什麼事兩階段提交、三階段提交;

MySQL記錄binlog的方式主要包括三種模式?每種模式的優缺點是什麼?

MySQL鎖,悲觀鎖、樂觀鎖、排它鎖、共享鎖、表級鎖、行級鎖;

分散式事務的原理2階段提交,同步非同步阻塞非阻塞;

資料庫事務隔離級別,MySQL預設的隔離級別、Spring如何實現事務、JDBC如何實現事務、巢狀事務實現、分散式事務實現;

SQL的整個解析、執行過程原理、SQL行轉列;

八、Redis

Redis為什麼這麼快?redis採用多執行緒會有哪些問題?

Redis支援哪幾種資料結構;

Redis跳躍表的問題;

Redis單程式單執行緒的Redis如何能夠高併發?

Redis如何使用Redis實現分散式鎖?

Redis分散式鎖操作的原子性,Redis內部是如何實現的?

九、其他

看過哪些原始碼?然後會根據你說的原始碼問一些細節的問題?(這裡主要考察面試者是否對技術有鑽研的精神,還是隻停留在表面,還是背了幾道面經,這個對於很多有強迫症的面試官,如果你連原始碼都沒看過,基本上是會pass掉的,比如我也是這樣的!)

專案中遇到了哪些比較有挑戰性的問題,是如何解決的;(這個很有爭議,一方面是你連一個複雜的問題都解決不了,要你過來幹什麼,還有就是,我的能力牛逼啊,但是公司沒有業務場景讓我展示啊!這個就看你遇到的面試官了,祝你好運!)

到此為止,大致把一些面試官高頻的面試題整理了一下,希望對大家有所幫助!

歡迎工作一到五年的Java工程師朋友們加入Java架構開發:744677563

本群提供免費的學習指導 架構資料 以及免費的解答

不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導


相關文章