java——比較難和底層的面試題


鏈接地址:https://mp.weixin.qq.com/s/lnbCysCQgfjF_kcB83KQZg

這是一個在線教育機構的文章,感覺大部分都不會,太難了。

 

一、自我介紹

 

二、多線程相關:

  • 線程池的原理,為什么要創建線程池?創建線程池的方式;

  • 線程的生命周期,什么時候會出現僵死進程;

  • 說說線程安全問題,什么實現線程安全,如何實現線程安全;

  • 創建線程池有哪幾個核心參數?如何合理配置線程池的大小?

  • volatile、ThreadLocal的使用場景和原理;

  • ThreadLocal什么時候會出現OOM的情況?為什么?

  • synchronized、volatile區別、synchronized鎖粒度、模擬死鎖場景、原子性與可見性;

三、JVM相關

  • JVM內存模型,GC機制和原理;

  • GC分哪兩種,Minor GC 和Full GC有什么區別?什么時候會觸發Full GC?分別采用什么算法?

  • JVM里的有幾種classloader,為什么會有多種?

  • 什么是雙親委派機制?介紹一些運作過程,雙親委派模型的好處;

  • 什么情況下我們需要破壞雙親委派模型;

  • 常見的JVM調優方法有哪些?可以具體到調整哪個參數,調成什么值?

  • JVM虛擬機內存划分、類加載器、垃圾收集算法、垃圾收集器、class文件結構是如何解析的;

四、Redis

  • Redis為什么這么快?redis采用多線程會有哪些問題?

  • Redis支持哪幾種數據結構;

  • Redis跳躍表的問題;

  • Redis單進程單線程的Redis如何能夠高並發?

  • Redis如何使用Redis實現分布式鎖?

  • Redis分布式鎖操作的原子性,Redis內部是如何實現的?

五、Java高級部分

    • 紅黑樹的實現原理和應用場景;

    • NIO是什么?適用於何種場景?

    • Java9比Java8改進了什么;

    • HashMap內部的數據結構是什么?底層是怎么實現的?(還可能會延伸考察ConcurrentHashMap與HashMap、HashTable等,考察對技術細節的深入了解程度);

    • 說說反射的用途及實現,反射是不是很慢,我們在項目中是否要避免使用反射;

    • 說說自定義注解的場景及實現;

    • List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別

 

六、Spring相關

  • Spring AOP的實現原理和場景?

  • Spring bean的作用域和生命周期;

  • Spring Boot比Spring做了哪些改進?Spring 5比Spring4做了哪些改進;

  • 如何自定義一個Spring Boot Starter?

  • Spring IOC是什么?優點是什么?

  • SpringMVC、動態代理、反射、AOP原理、事務隔離級別;

七、Java多線程相關

    • 線程池的原理,為什么要創建線程池?創建線程池的方式;

    • 線程的生命周期,什么時候會出現僵死進程;

    • 說說線程安全問題,什么實現線程安全,如何實現線程安全;

    • 創建線程池有哪幾個核心參數?如何合理配置線程池的大小?

    • volatile、ThreadLocal的使用場景和原理;

    • ThreadLocal什么時候會出現OOM的情況?為什么?

    • synchronized、volatile區別、synchronized鎖粒度、模擬死鎖場景、原子性與可見性性

八、Java高級部分

 

  • 紅黑樹的實現原理和應用場景;

  • NIO是什么?適用於何種場景?

  • Java9比Java8改進了什么;

  • HashMap內部的數據結構是什么?底層是怎么實現的?(還可能會延伸考察ConcurrentHashMap與HashMap、HashTable等,考察對技術細節的深入了解程度);

  • 說說反射的用途及實現,反射是不是很慢,我們在項目中是否要避免使用反射;

  • 說說自定義注解的場景及實現;

  • List 和 Map 區別,Arraylist 與 LinkedList 區別,ArrayList 與 Vector 區別;

 

九、中間件篇

    • Dubbo完整的一次調用鏈路介紹;

    • Dubbo支持幾種負載均衡策略?

    • Dubbo Provider服務提供者要控制執行並發請求上限,具體怎么做?

    • Dubbo啟動的時候支持幾種配置方式?

    • 了解幾種消息中間件產品?各產品的優缺點介紹;

    • 消息中間件如何保證消息的一致性和如何進行消息的重試機制?

    • Spring Cloud熔斷機制介紹;

    • Spring Cloud對比下Dubbo,什么場景下該使用Spring Cloud?

十、數據庫篇

 

  • 鎖機制介紹:行鎖、表鎖、排他鎖、共享鎖;

  • 樂觀鎖的業務場景及實現方式;

  • 事務介紹,分布式事物的理解,常見的解決方案有哪些,什么事兩階段提交、三階段提交;

  • MySQL記錄binlog的方式主要包括三種模式?每種模式的優缺點是什么?

  • MySQL鎖,悲觀鎖、樂觀鎖、排它鎖、共享鎖、表級鎖、行級鎖;

  • 分布式事務的原理2階段提交,同步\異步\阻塞\非阻塞;

  • 數據庫事務隔離級別,MySQL默認的隔離級別、Spring如何實現事務、JDBC如何實現事務、嵌套事務實現、分布式事務實現;

  • SQL的整個解析、執行過程原理、SQL行轉列;

十一、Redis

 

  • Redis為什么這么快?redis采用多線程會有哪些問題?

  • Redis支持哪幾種數據結構;

  • Redis跳躍表的問題;

  • Redis單進程單線程的Redis如何能夠高並發?

  • Redis如何使用Redis實現分布式鎖?

  • Redis分布式鎖操作的原子性,Redis內部是如何實現的?

十二、其他

 

  • 看過哪些源代碼?然后會根據你說的源碼問一些細節的問題?(這里主要考察面試者是否對技術有鑽研的精神,還是只停留在表面,還是背了幾道面經,這個對於很多有強迫症的面試官,如果你連源碼都沒看過,基本上是會pass掉的,比如我也是這樣的!)

  • 項目中遇到了哪些比較有挑戰性的問題,是如何解決的;(這個很有爭議,一方面是你連一個復雜的問題都解決不了,要你過來干什么,還有就是,我的能力牛逼啊,但是公司沒有業務場景讓我展示啊!這個就看你遇到的面試官了,祝你好運!)

  •  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM