上周五,知乎粉絲在后臺留言,他最近去大廠面試Java工作,第一輪就被刷掉,原因是沒寫出來用哪些命令解決cpu占用率高的問題,我問他是不會嗎?他說:“一著急,就沒寫出來,尷尬”!今天呢,小編整理一下Java相關面試題,希望能幫助面試超級緊張的你哦!
image.png
1. cas是什么?給你筆畫一下具體的實現過程?cas什么時候結束?
2. java的鎖存儲在哪?占幾個比特位?鎖是如何升級的?
3. redis的緩存淘汰策略有哪些?LRU和LFU區別,手寫一個LRU
4. 寫出線程池的核心參數,并解釋,然后說明線程池是有哪些放棄策略?
5. http屬于什么層協議?與https的區別是什么?Tcp協議屬于那一層?OSI七層網絡模型有哪些?三次握手和四次揮手的過程?為什么握手要三次,揮手要四次?
6. 線上cpu占用率高怎么辦?如何排查這個問題,用哪些命令
7. spring使用了哪些設計模式?BeanFactory和Factory的區別是什么?
8. 策略模式的使用場景?說一下它的優點和缺點?
9. 給你一個秒殺場景,如何應對短時間的高峰請求問題?數據庫如何防止并發問題?秒殺如何實現不同的客戶端的時間一致性?
10. redis的基本數據類型有哪些?hash的使用場景?如何通過redis實現一個阻塞隊列?
11. 畫出dubbo的調用關系圖?并舉例說明調用鏈
12. cas是什么?解釋一下cas的原理。并用筆畫出來,aba問題怎么解決?
13. 你們的線程池是如何配比的?默認的線程數是多少?寫出線程池的幾個參數,并結合你們的項目解釋一下是如何調優的?
14. sring的事務用過嗎?簡述一下如何使用?當方法A使用了事務,方法B也使用了事務,他們的事務策略都是:如果沒有新的事務就開啟一個事務,問調用過程中事務是如何傳播的? 給你一串連續的數字,1到10000,隨機除去兩個數,怎樣快速找到這兩個數?
15. tomcat的IO框架經歷了怎樣的變化?談談你對NIO流的理解?
16. redis的緩存策略有哪些?手動寫一下LRU的實現方法,并介紹一下LFU
17. redis的集群是如何找到具體的key的?你們的集群采用哪種持久化策略?為什么?集群搭建模式是什么?
18. 方法前如果不聲明private、public,那么是什么?它的級別是什么?
19. 有沒有線上調優JVM的經驗?如何打印gc細節?
20. 把你知道的GC算法都說一下,虛擬機經歷了怎樣的變化才發展到今天?
21. 你做了什么項目?有哪些功能?有什么優勢?解決了什么問題?你認為還有那些優化的點?
22. 手寫一個單例模式(雙重檢查鎖機制)
23. volatile是如何實現變量可見的?用到了哪些指令?工作內存和主內存解決了什么問題?以及他們之間的交互過程
24. jvm如何調優?寫幾個參數出來?嘗試設計一個自己的JVM,你會如何設計?
25. dubbo的group怎么用?超時時間設置的作用域有哪些?優先級是什么?
26. ThreadLocal底層如何實現?map中的key是什么?vlaue是什么?需要解決什么問題?哪個方法可以防止內存泄露
27. 講一下currentHashMap的get方法過程,如何鏈表轉紅黑樹?
28. 有一個表t1,列為ABC,索引為AC,現在select xx from table where c=xx a =xx有沒有用到索引?
29. 什么是可重入鎖?假如我一個線程申請了可重入鎖,那么子線程可以再次用到可重入鎖嗎?
30. jvm的內存結構是什么樣的?請畫出來并且是哪些是線程共享的?哪些是線程私有的?
31. 雙向升序鏈表的插入和刪除(筆試)
32. 二維數組的遍歷和賦值(筆試)
33. 算法:一個公司找獵頭拿簡歷 1000份,每個獵頭需要的傭金一樣,但每個獵頭擁有的簡歷數不相同(可能重復) ,問公司如何能雇傭最少的獵頭找到更多的簡歷
34. 接口限流策略有哪些
35. 微服務雪崩后怎么處理的?
36. 多線程環境,線程如何同步?
37. 用多線程統計1到1000000之間有多少個素數,并輸出素數(假設cpu有四核)(機試)
38. 用java實現各訂單生成器,需要考慮可讀、并發、不可重復(機試)
39. 歸并排序(機試)
以上,就是小編幫助大家整理的Java相關面試題,愿你們都能披荊斬棘!