1. 程式人生 > >最新阿里內推Java後端面試題

最新阿里內推Java後端面試題

最新阿里內推Java後端面試題

阿里一面題目:

osi七層網路模型,五層網路模型,每次層分別有哪些協議。
死鎖產生的條件, 以及如何避免死鎖,銀行家演算法,產生死鎖後如何解決。
如何判斷連結串列有環。
虛擬機器類載入機制,雙親委派模型,以及為什麼要實現雙親委派模型。
虛擬機器調優引數。
拆箱裝箱的原理。
JVM垃圾回收演算法。
CMS G1。
hashset和hashmap的區別,haspmap的底層實現put操作,擴容機制,currenthashmap如何解決執行緒安全,1.7版本以及1.8版本的不同。
md5加密的原理。
有多少種方法可以讓執行緒阻塞,能說多少說多少。
synchronized和reetrantlock鎖。
AQS同步器框架,countdowmlatch,cyclebarrier,semaphore,讀寫鎖。

阿里二面題目:

B-Tree索引,myisam和innodb中索引的區別。
BIO和NIO的應用場景。
講講threadlocal。
資料庫隔離級別,每層級別分別用什麼方法實現,三級封鎖協議,共享鎖排它鎖,mvcc多版本併發控制協議,間隙鎖。
資料庫索引?B+樹?為什麼要建索引?什麼樣的欄位需要建索引,建索引的時候一般考慮什麼?索引會不會使插入、刪除作效率變低,怎麼解決?
資料庫表怎麼設計的?資料庫正規化?設計的過程中需要注意什麼?
共享鎖與非共享鎖、一個事務鎖住了一條資料,另一個事務能查嗎?
Spring bean的生命週期?預設建立的模式是什麼?不想單例怎麼辦?

阿里三面題:

高併發時怎麼限流。
執行緒池的拒接任務策略。
HashMap和Hashtable的區別。
實現一個保證迭代順序的HashMap。
說一說排序演算法,穩定性,複雜度。
說一說GC。
JVM如何載入一個類的過程,雙親委派模型中有哪些方法?
TCP如何保證可靠傳輸?三次握手過程?
springboot的啟動流程。
叢集、負載均衡、分散式、資料一致性的區別與關係。
資料庫如果讓你來垂直和水平拆分,誰先拆分,拆分的原則有哪些(單表資料量多大拆)。
最後談談Redis、Kafka、 Dubbo,各自的設計原理和應用場景。

面試總結:

通過這次面試題和之前發的阿里面試題來看,可以總結出目前網際網路公司面試考點為:

效能調優、演算法資料機構
高併發下資料安全、介面冪等性、原子性等
分散式下協同、已經鎖的處理
資料庫的分庫分表、專案之間的垂直拆分

詳細技術點為:

HashMap
JVM 【必問】
Dubbo
Mybatis
Zookeeper
http tcp/ip

關於作者爛豬皮