上周五,知乎粉絲在后臺留言,他最近去大廠面試Java工作,第一輪就被刷掉,原因是沒寫出來用哪些命令解決cpu占用率高的問題,我問他是不會嗎?他說:“一著急,就沒寫出來,尷尬”!今天呢,小編整理一下Java相關(guān)面試題,希望能幫助面試超級緊張的你哦!
image.png
1. cas是什么?給你筆畫一下具體的實現(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)點和缺點?
9. 給你一個秒殺場景,如何應(yīng)對短時間的高峰請求問題?數(shù)據(jù)庫如何防止并發(fā)問題?秒殺如何實現(xiàn)不同的客戶端的時間一致性?
10. redis的基本數(shù)據(jù)類型有哪些?hash的使用場景?如何通過redis實現(xiàn)一個阻塞隊列?
11. 畫出dubbo的調(diào)用關(guān)系圖?并舉例說明調(diào)用鏈
12. cas是什么?解釋一下cas的原理。并用筆畫出來,aba問題怎么解決?
13. 你們的線程池是如何配比的?默認的線程數(shù)是多少?寫出線程池的幾個參數(shù),并結(jié)合你們的項目解釋一下是如何調(diào)優(yōu)的?
14. sring的事務(wù)用過嗎?簡述一下如何使用?當(dāng)方法A使用了事務(wù),方法B也使用了事務(wù),他們的事務(wù)策略都是:如果沒有新的事務(wù)就開啟一個事務(wù),問調(diào)用過程中事務(wù)是如何傳播的? 給你一串連續(xù)的數(shù)字,1到10000,隨機除去兩個數(shù),怎樣快速找到這兩個數(shù)?
15. tomcat的IO框架經(jīng)歷了怎樣的變化?談?wù)勀銓IO流的理解?
16. redis的緩存策略有哪些?手動寫一下LRU的實現(xiàn)方法,并介紹一下LFU
17. redis的集群是如何找到具體的key的?你們的集群采用哪種持久化策略?為什么?集群搭建模式是什么?
18. 方法前如果不聲明private、public,那么是什么?它的級別是什么?
19. 有沒有線上調(diào)優(yōu)JVM的經(jīng)驗?如何打印gc細節(jié)?
20. 把你知道的GC算法都說一下,虛擬機經(jīng)歷了怎樣的變化才發(fā)展到今天?
21. 你做了什么項目?有哪些功能?有什么優(yōu)勢?解決了什么問題?你認為還有那些優(yōu)化的點?
22. 手寫一個單例模式(雙重檢查鎖機制)
23. volatile是如何實現(xiàn)變量可見的?用到了哪些指令?工作內(nèi)存和主內(nèi)存解決了什么問題?以及他們之間的交互過程
24. jvm如何調(diào)優(yōu)?寫幾個參數(shù)出來?嘗試設(shè)計一個自己的JVM,你會如何設(shè)計?
25. dubbo的group怎么用?超時時間設(shè)置的作用域有哪些?優(yōu)先級是什么?
26. ThreadLocal底層如何實現(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有四核)(機試)
38. 用java實現(xiàn)各訂單生成器,需要考慮可讀、并發(fā)、不可重復(fù)(機試)
39. 歸并排序(機試)
以上,就是小編幫助大家整理的Java相關(guān)面試題,愿你們都能披荊斬棘!