Java面試難嗎?這些面試題幫你直接錄取哦!



上周五,知乎粉絲在后臺留言,他最近去大廠面試Java工作,第一輪就被刷掉,原因是沒寫出來用哪些命令解決cpu占用率高的問題,我問他是不會嗎?他說:“一著急,就沒寫出來,尷尬”!今天呢,小編整理一下Java相關(guān)面試題,希望能幫助面試超級緊張的你哦!

image.png

1. cas是什么?給你筆畫一下具體的實(shí)現(xiàn)過程?cas什么時候結(jié)束?

2. java的鎖存儲在哪?占幾個比特位?鎖是如何升級的?

3. redis的緩存淘汰策略有哪些?LRU和LFU區(qū)別,手寫一個LRU

4. 寫出線程池的核心參數(shù),并解釋,然后說明線程池是有哪些放棄策略?

5.  http屬于什么層協(xié)議?與https的區(qū)別是什么?Tcp協(xié)議屬于那一層?OSI七層網(wǎng)絡(luò)模型有哪些?三次握手和四次揮手的過程?為什么握手要三次,揮手要四次?

6.  線上cpu占用率高怎么辦?如何排查這個問題,用哪些命令

7. spring使用了哪些設(shè)計模式?BeanFactory和Factory的區(qū)別是什么?

8. 策略模式的使用場景?說一下它的優(yōu)點(diǎn)和缺點(diǎn)?

9. 給你一個秒殺場景,如何應(yīng)對短時間的高峰請求問題?數(shù)據(jù)庫如何防止并發(fā)問題?秒殺如何實(shí)現(xiàn)不同的客戶端的時間一致性?

10. redis的基本數(shù)據(jù)類型有哪些?hash的使用場景?如何通過redis實(shí)現(xiàn)一個阻塞隊(duì)列?

11. 畫出dubbo的調(diào)用關(guān)系圖?并舉例說明調(diào)用鏈

12. cas是什么?解釋一下cas的原理。并用筆畫出來,aba問題怎么解決?

13. 你們的線程池是如何配比的?默認(rèn)的線程數(shù)是多少?寫出線程池的幾個參數(shù),并結(jié)合你們的項(xiàng)目解釋一下是如何調(diào)優(yōu)的?

14. sring的事務(wù)用過嗎?簡述一下如何使用?當(dāng)方法A使用了事務(wù),方法B也使用了事務(wù),他們的事務(wù)策略都是:如果沒有新的事務(wù)就開啟一個事務(wù),問調(diào)用過程中事務(wù)是如何傳播的? 給你一串連續(xù)的數(shù)字,1到10000,隨機(jī)除去兩個數(shù),怎樣快速找到這兩個數(shù)?

15. tomcat的IO框架經(jīng)歷了怎樣的變化?談?wù)勀銓IO流的理解?

16. redis的緩存策略有哪些?手動寫一下LRU的實(shí)現(xiàn)方法,并介紹一下LFU

17. redis的集群是如何找到具體的key的?你們的集群采用哪種持久化策略?為什么?集群搭建模式是什么?

18. 方法前如果不聲明private、public,那么是什么?它的級別是什么?

19. 有沒有線上調(diào)優(yōu)JVM的經(jīng)驗(yàn)?如何打印gc細(xì)節(jié)?

20. 把你知道的GC算法都說一下,虛擬機(jī)經(jīng)歷了怎樣的變化才發(fā)展到今天?

21. 你做了什么項(xiàng)目?有哪些功能?有什么優(yōu)勢?解決了什么問題?你認(rèn)為還有那些優(yōu)化的點(diǎn)?

22. 手寫一個單例模式(雙重檢查鎖機(jī)制)

23. volatile是如何實(shí)現(xiàn)變量可見的?用到了哪些指令?工作內(nèi)存和主內(nèi)存解決了什么問題?以及他們之間的交互過程

24. jvm如何調(diào)優(yōu)?寫幾個參數(shù)出來?嘗試設(shè)計一個自己的JVM,你會如何設(shè)計?

25. dubbo的group怎么用?超時時間設(shè)置的作用域有哪些?優(yōu)先級是什么?

26. ThreadLocal底層如何實(shí)現(xiàn)?map中的key是什么?vlaue是什么?需要解決什么問題?哪個方法可以防止內(nèi)存泄露

27.  講一下currentHashMap的get方法過程,如何鏈表轉(zhuǎn)紅黑樹?

28.  有一個表t1,列為ABC,索引為AC,現(xiàn)在select xx from table where c=xx a =xx有沒有用到索引?

29. 什么是可重入鎖?假如我一個線程申請了可重入鎖,那么子線程可以再次用到可重入鎖嗎?

30.  jvm的內(nèi)存結(jié)構(gòu)是什么樣的?請畫出來并且是哪些是線程共享的?哪些是線程私有的?

31.  雙向升序鏈表的插入和刪除(筆試)

32.  二維數(shù)組的遍歷和賦值(筆試)

33.  算法:一個公司找獵頭拿簡歷 1000份,每個獵頭需要的傭金一樣,但每個獵頭擁有的簡歷數(shù)不相同(可能重復(fù)) ,問公司如何能雇傭最少的獵頭找到更多的簡歷

34.  接口限流策略有哪些

35.  微服務(wù)雪崩后怎么處理的?

36. 多線程環(huán)境,線程如何同步?

37. 用多線程統(tǒng)計1到1000000之間有多少個素數(shù),并輸出素數(shù)(假設(shè)cpu有四核)(機(jī)試)

38. 用java實(shí)現(xiàn)各訂單生成器,需要考慮可讀、并發(fā)、不可重復(fù)(機(jī)試)

39.  歸并排序(機(jī)試)

以上,就是小編幫助大家整理的Java相關(guān)面試題,愿你們都能披荊斬棘!

北大青鳥網(wǎng)上報名
北大青鳥招生簡章