BATJ等一線網際網路公司Java高階面試題總結
1、hashcode相等兩個類一定相等嗎?equals呢?相反呢?
2、介紹一下集合框架?
3、hashmap hastable 底層實現什麼區別?hashtable和concurrenthashtable呢?
4、hashmap和treemap什麼區別?低層資料結構是什麼?
5、執行緒池用過嗎都有什麼引數?底層如何實現的?
6、sychnized和Lock什麼區別?sychnize 什麼情況情況是物件鎖? 什麼時候是全域性鎖為什麼?
7、ThreadLocal 是什麼底層如何實現?寫一個例子唄?
8、volitile的工作原理?
9、cas知道嗎如何實現的?
10、請用至少四種寫法寫一個單例模式?
JVM
1、請介紹一下JVM記憶體模型??用過什麼垃圾回收器都說說唄
2、線上傳送頻繁full gc如何處理? CPU 使用率過高怎麼辦?
如何定位問題?如何解決說一下解決思路和處理方法
3、知道位元組碼嗎?位元組碼都有哪些?Integer x =5,int y =5,比較x =y 都經過哪些步驟?
4、講講類載入機制唄都有哪些類載入器,這些類載入器都載入哪些檔案?
手寫一下類載入Demo
5、知道osgi嗎? 他是如何實現的???
6、請問你做過哪些JVM優化?使用什麼方法達到什麼效果???
7、classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什麼區別啊??
Spring
1、spring都有哪些機制啊AOP底層如何實現的啊IOC呢??
2、cgLib知道嗎?他和jdk動態代理什麼區別?手寫一個jdk動態代理唄?
資料庫
1、使用mysq1索引都有哪些原則? ?索引什麼資料結構? 3+tree 和B tree 什麼區別?
2、mysq1有哪些儲存引擎啊?都有啥區別? 要詳細!
3、設計高併發系統資料庫層面該怎麼設計??資料庫鎖有哪些型別?如何實現呀?
4、資料庫事務有哪些?
分庫分表
1、如何設計可以動態擴容縮容的分庫分表方案?
2、用過哪些分庫分表中介軟體,有啥優點和缺點?講一下你瞭解的分庫分表中介軟體的底層實現原理?
3、我現在有一個未分庫分表的系統,以後系統需分庫分表,如何設計,讓未分庫分表的系統動態切換到分庫分表的系統上???TCC? 那若出現網路原因,網路連不通怎麼辦啊???
4、分散式事務知道嗎? 你們怎麼解決的?
5、為什麼要分庫分表啊???
6、分散式定址方式都有哪些演算法知道一致性hash嗎?手寫一下java實現程式碼??你若userId取摸分片,那我要查一段連續時間裡的資料怎麼辦???
7、如何解決分庫分表主鍵問題有什麼實現方案??
分散式快取
1、redis和memcheched 什麼區別為什麼單執行緒的redis比多執行緒的memched效率要高啊?
2、redis有什麼資料型別都在哪些場景下使用啊?
3、reids的主從複製是怎麼實現的redis的叢集模式是如何實現的呢redis的key是如何定址的啊?
4、使用redis如何設計分散式鎖?使用zk可以嗎?如何實現啊這兩種哪個效率更高啊??
5、知道redis的持久化嗎都有什麼缺點優點啊? ?具體底層實現呢?
6、redis過期策略都有哪些LRU 寫一下java版本的程式碼吧??
分散式服務框架
1、說一下dubbo的實現過程註冊中心掛了可以繼續通訊嗎??
2、zk原理知道嗎zk都可以幹什麼Paxos演算法知道嗎?說一下原理和實現??
3、dubbo支援哪些序列化協議?hessian 說一下hessian的資料結構PB知道嗎為啥PB效率是最高的啊??
4、知道netty嗎'netty可以幹嘛呀NIO,BIO,AIO 都是什麼啊有什麼區別啊?
5、dubbo複製均衡策略和高可用策略都有哪些啊動態代理策略呢?
6、為什麼要進行系統拆分啊拆分不用dubbo可以嗎'dubbo和thrift什麼區別啊?
分散式訊息佇列
1、為什麼使用訊息佇列啊訊息佇列有什麼優點和缺點啊?
2、如何保證訊息佇列的高可用啊如何保證訊息不被重複消費啊
3、kafka ,activemq,rabbitmq ,rocketmq都有什麼優點,缺點啊???
4、如果讓你寫一個訊息佇列,該如何進行架構設計啊?說一下你的思路
分散式搜尋引擎
1、es的工作過程實現是如何的?如何實現分散式的啊
2、es在資料量很大的情況下( 數十億級別)如何提高查詢效率啊?
3、es的查詢是一個怎麼的工作過程?底層的lucence介紹一下唄倒排索引知道嗎?es和mongdb什麼區別啊都在什麼場景下使用啊?
高併發高可用架構設計
1、如何設計一個高併發高可用系統
2、如何限流?工程中怎麼做的,說一下具體實現
3、快取如何使用的快取使用不當會造成什麼後果?
4、如何熔斷啊?熔斷框架都有哪些?具體實現原理知道嗎?
5、如何降級如何進行系統拆分,如何資料庫拆分????
分散式專題架構
通訊協議
1、說一下TCP 'IP四層?
2、http的工作流程?? ?http1.0 http1.1http2.0 具體哪些區別啊?
3、TCP三次握手,四層分手的工作流程畫一下流程圖為什麼不是四次五次或者二次啊?
4、畫一下https的工作流程?具體如何實現啊?如何防止被抓包啊??
演算法
1、比較簡單,我一個檔案,有45億個阿拉伯數字,如何進行去重啊如何找出最大的那個數啊?
資料結構
1、二叉樹和紅黑樹等。
原始碼中所用到的經典設計思想及常用設計模式
希望大家在每天閒暇之餘學習其中幾道題目,日積月累,去 BAJT 面試時,一切都水到渠成。小編個人也準備了一些關於大廠面試的資料分享給大家,希望能幫助到馬上要面臨金三銀四的你們。
歡迎工作一到五年的Java工程師朋友們加入Java高階開發:867581223
群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,
MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)
合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來