天天看點

75 道 BAJT 中進階 Java 面試題,你能答上幾道?

整理了下 BATJ 關于 JAVA 的面試題目,大家參考下吧,希望對大家有所幫助,可以幫大家查漏不缺。 答對這些面試題,PASS 掉 80 % 的求職競争者。

1.hashcode相等兩個類一定相等嗎?equals呢?相反呢?

2.介紹一下集合架構?

3.hashmap hastable 底層實作什麼差別?hashtable和concurrenthashtable呢?

4.hashmap和treemap什麼差別?低層資料結構是什麼?

5.線程池用過嗎都有什麼參數?底層如何實作的?

6.sychnized和Lock什麼差別?sychnize 什麼情況情況是對象鎖? 什麼時候是全局鎖為什麼?

7.ThreadLocal 是什麼底層如何實作?寫一個例子呗?

8.volitile的工作原理?

9.cas知道嗎如何實作的?

10.請用至少四種寫法寫一個單例模式?

11.請介紹一下JVM記憶體模型??用過什麼垃圾回收器都說說呗

12.線上發送頻繁full gc如何處理? CPU 使用率過高怎麼辦?

13.如何定位問題?如何解決說一下解決思路和處理方法

14.知道位元組碼嗎?位元組碼都有哪些?Integer x =5,int y =5,比較x =y 都經過哪些步驟?

15.講講類加載機制呗都有哪些類加載器,這些類加載器都加載哪些檔案?

16.手寫一下類加載Demo

17.知道osgi嗎? 他是如何實作的???

18.請問你做過哪些JVM優化?使用什麼方法達到什麼效果???

19.classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什麼差別啊?

20.探查Tomcat的運作機制即架構?

21.分析Tomcat線程模型?

22.Tomcat系統參數認識和調優?

23.MySQL底層B+Tree機制?

24.SQL執行計劃詳解?

25.索引優化詳解?

26.SQL語句如如如何優化?

27.spring都有哪些機制啊AOP底層如何實作的啊IOC呢??

28.cgLib知道嗎?他和jdk動态代理什麼差別?手寫一個jdk動态代理呗?

29.使用mysq1索引都有哪些原則? ?索引什麼資料結構? 3+tree 和B tree 什麼差別?

30.MySQL有哪些存儲引擎啊?都有啥差別? 要詳細!

31.設計高并發系統資料庫層面該怎麼設計??資料庫鎖有哪些類型?如何實作呀?

32.資料庫事務有哪些?

33.如何設計可以動态擴容縮容的分庫分表方案?

34.用過哪些分庫分表中間件,有啥優點和缺點?講一下你了解的分庫分表中間件的底層實作原理?

35.我現在有一個未分庫分表的系統,以後系統需分庫分表,如何設計,讓未分庫分表的系統動态切換到分庫分表的系統上?TCC? 那若出現網絡原因,網絡連不通怎麼辦啊?

36.分布式事務知道嗎? 你們怎麼解決的?

37.為什麼要分庫分表啊?

38.RPC通信原理,分布式通信原理

39.分布式尋址方式都有哪些算法知道一緻性hash嗎?手寫一下java實作代碼??你若userId取摸分片,那我要查一段連續時間裡的資料怎麼辦???

40.如何解決分庫分表主鍵問題有什麼實作方案??

41.redis和memcheched 什麼差別為什麼單線程的redis比多線程的memched效率要高啊?

42.redis有什麼資料類型都在哪些場景下使用啊?

43.reids的主從複制是怎麼實作的redis的叢集模式是如何實作的呢redis的key是如何尋址的啊?

44.使用redis如何設計分布式鎖?使用zk可以嗎?如何實作啊這兩種哪個效率更高啊??

45.知道redis的持久化嗎都有什麼缺點優點啊? ?具體底層實作呢?

46.redis過期政策都有哪些LRU 寫一下java版本的代碼吧??

47.說一下dubbo的實作過程注冊中心挂了可以繼續通信嗎??

48.dubbo支援哪些序列化協定?hessian 說一下hessian的資料結構PB知道嗎為啥PB效率是最高的啊??

49.知道netty嗎'netty可以幹嘛呀NIO,BIO,AIO 都是什麼啊有什麼差別啊?

50.dubbo複制均衡政策和高可用政策都有哪些啊動态代理政策呢?

51.為什麼要進行系統拆分啊拆分不用dubbo可以嗎'dubbo和thrift什麼差別啊?

52.為什麼使用消息隊列啊消息隊列有什麼優點和缺點啊?

53.如何保證消息隊列的高可用啊如何保證消息不被重複消費啊

54.kafka ,activemq,rabbitmq ,rocketmq都有什麼優點,缺點啊???

55.如果讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路

56.說一下TCP 'IP四層?

57.的工作流程?? ?http1.0 http1.1http2.0 具體哪些差別啊?

58.TCP三向交握,四層分手的工作流程畫一下流程圖為什麼不是四次五次或者二次啊?

59.畫一下https的工作流程?具體如何實作啊?如何防止被抓包啊??

60.源碼中所用到的經典設計思想及常用設計模式

61.系統架構如何選擇合适日志技術(log4j、log4j2、slf4j、jcl…….)

62.springAOP的原理,springAOP和Aspectj的關系,springAOP的源碼問題

63.dubbo架構的底層通信原理

64.RPC通信原理,分布式通信原理

65.如何利用springCloud來架構微服務項目

66.如何正确使用docker技術

67.springMVC的底層原理、如何從源碼來分析其原理

68.mybaits的底層實作原理,如何從源碼來分析mybaits

69.mysql的索引原理,索引是怎麼實作的

70.索引的底層算法、如何正确使用、優化索引

71.springboot如何快速建構系統

72.zk原理知道嗎zk都可以幹什麼Paxos算法知道嗎?說一下原理和實作?

73.如果讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路

74.分布式事務知道嗎? 你們怎麼解決的?

75.請問你做過哪些JVM優化?使用什麼方法達到什麼效果?

講真的,你能答上多少道?

希望大家在每天閑暇之餘學習其中幾道題目,日積月累,去 BAJT 面試時,一切都水到渠成。

歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481

群内提供免費的Java架構學習資料(裡面有高可用、高并發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!