Java面试题40道
1、自我介紹,介紹最近做的一個項目,有什么難點?工作有哪些亮點,解決了哪些技術問題?
2、詳細解釋微服務,如何實現服務發現與注冊,如果某個服務掛掉,如何通知調用者?
3、如何寫出健壯的代碼?項目中如何做的日志打印?講講領域模型設計(DDD)?
4、數據異步處理如何實現,服務如何拆分,數據統計為何增量統計?
5、有沒有做過系統性能提升?講一下關鍵的改進點?
6、為什么使用微服務?dubbo和springcloud是怎么選擇的?
7、mysql事務隔離級別?什么情況下會出現幻讀?mysql生產環境遇到過死鎖嗎,怎么理解死鎖?
8、mysql 怎么做的分庫分表,有沒有遇到跨庫查詢問題?mysql 慢查詢怎么解決的?
9、mysql的版本控制如何實現的?行級別鎖添加和釋放的時機?
10、索引結構,b+樹較其他b樹和紅黑樹的優勢?
11、聯合索引的樹b+樹長什么樣子?為什么是索引最左匹配原則?B+樹查詢的時間復雜度?
12、mybatis的二級緩存是怎么實現的?二級緩存和一級緩存是存了哪些數據?
13、熔斷限流怎么做的,hystrix解決了什么問題?hystrix怎么實現的?
14、項目中接口冪等性的實現?通過令牌保證接口冪等性過程的描述?令牌的生成和刪除?
15、講一下springmvc的原理?Spring用到哪些設計模式?
16、spring cloud 與spring什么關系?了解springboot的自動裝配原理嗎?
17、spring的循環依賴,怎么解決的,為什么需要加個三級緩存?
18、redis支持的數據結構?redis如何實現string,這樣實現有什么好處?
19、RDB和AOF都是什么,AOF日志量太大時redis如何處理?
20、redis key過期時間內部存儲結構及實現?redis的過期淘汰機制有哪些?
21、redis 集群了解哪些?redis 數據如何做的備份?
22、如何使用redis實現一個優先級隊列?
23、緩存穿透和緩存雪崩及解決辦法?布隆過濾器的基本原理?
24、zookeeper集群的角色?角色的區別及切換過程?zab選舉的具體過程?
25、說一下HashMap的數據結構?hashmap的rehash過程?jdk1.8hashmap有哪些改進?
26、類加載的具體過程?實現類動態加載的機制有哪些?
27、介紹下JVM GC算法CMS和G1?有沒有線上GC調優經驗?
28、Java實現鎖的方式有哪幾種?synchronize的實現方式、底層原理、鎖升級的過程?
29、lock和synchronize的區別?Lock是公平鎖還是非公平鎖?
30、AQS的實現講一下?了解unsafe嗎 ?
31、分布式鎖redis和zookeeper的實現?有什么優缺點?
32、用過什么消息隊列?應用場景有什么?有沒有和其他mq作比較?
33、本地事務和發消息如何保證強一致性?
34、思考題:怎么統計一億用戶的日活?
35、算法題:求一個環形鏈表的環的長度
36、算法題:二叉樹的最近公共祖先
37:算法題:如何獲取一個數組里面第k大的數?
38:HR:工作這幾年,有什么樣的職場感受?
39:HR:自己的優點有哪些?自己的缺點有哪些?
40、HR:為什么想離職?期望薪資?手上有沒有其他offer,哪些公司?
總結
以上是生活随笔為你收集整理的Java面试题40道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cannot access xxx的解决
- 下一篇: 至高立减 700 元:魅族 20 手机