java面試題及答案2020 阿里(七)

java面試題及答案2020

一面(實習)-2020/3/31-牛客網

文末持續更新面試題及答案

1:排序算法,講述一下快速排序,冒泡排序
2:equals方法,對於重寫equals方法爲什麼要包含hashcode
3:final關鍵字的作用,final用在方法中時候不能被子類所繼承,那麼爲什麼要用final、什麼情況下會使用final
4:對於HashMap瞭解多少,HashMap是如何使用鍵去尋找值的,和hashcode有什麼關係
5:多態是什麼,泛型和多態的區別
6:java面向對象編程,其特點是什麼,你是怎麼理解繼承,封裝和多態的
7:JVM中主要有幾種垃圾回收算法
8:JVM中主要有哪些分區,哪些區域中會存在GC
9:學習了JVM對你使用JAVA有什麼影響或者是作用
10:在學習和項目中經常使用那些算法,有沒有使用過優化算法

一面-2020/3/15-牛客網

項目方面

問了項目相關的,如何定義接口規範啊,如何做項目架構實現(SpringIOC,SpringMVC的自實現),業務(也就是CRUD,沒啥難度),講了LRU緩存的實現。項目大概15分鐘左右。

基礎方面

1、JVM內存模型(運行數據區的各種區域,以及功能(棧幀裏面的那些也講了)),然後講到GC,GC算法,堆的分佈(老年代,新生代,以及它們的分配,垃圾回收算法的選擇)

2、補充問到:當eden區不斷增大的情況下,survivor區不斷減小會導致什麼情況?

3、InnoDB存儲引擎(從InnoDB的特性出發,行鎖,全文索引,聚蔟索引,必須含有主鍵(沒有主鍵怎麼辦,如何選擇),爲什麼是B+樹,而不是B樹,而不是紅黑樹,磁盤IO,以及B+樹和B樹的區別)

4、然後就是InnoDB的MVVC實現(版本號如何進行各種數據庫操作)。

5、類加載機制(從類加載,驗證,準備,解析,初始化,使用,卸載角度講述,類加載講類加載器(三種,如何定義用戶加載器),然後就是各個階段做了什麼)

6、線程池,剛開始沒聽清楚,以爲是原生實現線程池,後面才知道講的是TheadPoolExecutor,然後就是講參數,講流程,講拒絕策略。

7、ThreadLocal,講了底層實現,講了ThreadLocal的目的,解決了什麼問題。後面的ThreadLocal的key是弱引用(沒答出來,確實沒注意),然後就是ThreadLocal在線程池裏面使用會怎麼樣。

8、冒泡算法

9、TCP 爲什麼三次連接,TCP擁塞控制(慢開始,擁塞避免,快重傳,快恢復,裏面的窗口變量)和流程控制

10、就是各種獎項的問,做了什麼。

11、補充下,還問了一些JUC的一些東西,CountDownLatch,Semaphore,CyclicBarrier

所有面試題持續更新+答案整理見這裏:
java面試題及答案2020持續整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章