java面试题及答案2020 阿里(八)
java面試題及答案2020
三面-2020/3/30-牛客網
文末持續更新面試題及答案
項目方面
問了自己實現的SpringIOC的整個流程,直接細節到了代碼,說了一遍沒聽清楚,然后又說了一遍。問了LRU緩存的設計,后面就是直接口述LRU緩存的實現(代碼)。問了注解用代碼是如何寫的(我這記不清楚啊),然后就是問注解是如何自己解析的,我說可以通過Class對象,獲取到注解信息,從而判斷。
基礎方面
1、問了Redis的線程模型,單線程模式,怎么實現的,說了IO多路復用,然后就是epoll,然后介紹了IO多路復用模型的其他實現,對比。
2、然后就是問我Redis的epoll實現,我這個好像有點懵。
3、線程的狀態(NEW,RUNNABLE,BLOCKED,TIME_WAITING,WAITING)少了一種,然后就是BLOCKED 和 WAIT的區別
4、鎖,我講了synchronize,reentrantlock和鎖升級的過程,從無鎖狀態到偏向鎖到輕量級鎖到重量級鎖(markword,和cas操作替換線程id,然后問我cas是什么,我說比較和替換,Compare and swap,然后我說底層是通過硬件的cmpxchg命令保證的)。然后就是我們的ReentrantLock,將了AQS的底層(雙向鏈表,Node節點(Share,Exclusive,waitStatus),state變量(對不同的實現,所代表的含義不同),然后就是acquire方法和release方法的流程。reentrantlock的公平和非公平(沒說),好像是被打斷了)
5、LRU算法的實現
6、類加載,class.forname 和 classloader的區別,雙親委派原則。被問到不使用雙親委派原則,如何自定義java.lang.Integer會怎么樣(我自定義過 java.lang.Integer,使用直接拋出異常,說包違法)。可能還是不夠深入。
7、就是問了自己的缺點和優點,和獎項的項目和做了什么
所有面試題持續更新+答案整理見這里:
java面試題及答案2020
總結
以上是生活随笔為你收集整理的java面试题及答案2020 阿里(八)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jenkins的定时构建与轮询SCM
- 下一篇: 奇妙软件3趋势破解代码