更新時間:2019-12-06 13:35:26 來源:動力節點 瀏覽2520次
作為一名優秀的程序員,技術面試都是不可避免的一個環節,一般技術面試官都會通過自己的方式去考察程序員的技術功底與基礎理論知識。
如果你參加過一些大廠面試,肯定會遇到一些這樣的問題:
1、看你項目都用的框架,熟悉Spring、mybatis等框架實現原理嗎?
2、 看你上面有接觸過消息中間件,負載均衡、RPC框架等技術嗎,MySQL分庫分表有做過嗎?
3、 分布式架構設計,Redis分布式鎖呢?
是不是看上去很難,是不是和自己準備的“題庫”中的問題不一樣?不知道從何處下手?如果你有這種感覺,那么說明你的技術還需要繼續修煉。
面對如此多的技術面試,怎么樣才能說自己的技術已經過關了呢?
一、開場白
自我介紹,項目經驗(介紹下自己最滿意的,有技術亮點的項目或平臺,重點介紹下自己負責那部分的技術細節;這一塊主要考察應聘者對自己做過的事情是否有清晰的描述,判斷做的事情的復雜度)
2、JVM
垃圾回收算法有幾種類型? 他們對應的優缺點又是什么?
類的加載過程是什么?簡單描述一下每個步驟
JVM 預定義的類加載器有哪幾種?分別什么作用?
什么是雙親委派模式?有什么作用?
什么是內存溢出, 內存泄露? 他們的區別是什么?
引起類加載操作的行為有哪些?
介紹一下 JVM 提供的常用工具
Full GC 、 Major GC 、Minor GC 之間區別?
什么時候觸發 Full GC ?
...
3、Java并發
什么是可重入鎖、樂觀鎖、悲觀鎖、公平鎖、非公平鎖、獨占鎖、共享鎖?
講講ThreadLocal 的實現原理?
ThreadLocal 作為變量的線程隔離方式,其內部是如何做的?
說說InheritableThreadLocal 的實現原理?
并發包中鎖的實現底層(對AQS的理解)?
講講獨占鎖 ReentrantLock 原理?
4、Java集合
HashSet 和 TreeSet 有什么區別?
HashSet 的底層實現是什么?
LinkedHashMap 的實現原理?
為什么集合類沒有實現 Cloneable 和 Serializable 接口?
什么是迭代器 (Iterator)?
Iterator 和 ListIterator 的區別是什么?
5、Spring全家桶
Spring bean的生命周期能不能結合源碼回答一下這個問題、或者結合一下bean的生命的意義來回答,就是Spring為什么需要找個生命周期
Spring容器當中包含了哪些常用組件(至少說5個),作用是什么,場景是什么;比如BeanDefinition;再比如BeanDefinitionMap
Spring自動注入的原理是什么?能不能從源碼來說明一下這個問題;我們常常說的自動注入,到底怎么注入的?有什么坑?怎么讓你一個屬性不自動注入
Spring源碼當中如何來搞定循環依賴的?Spring支持循環依賴?生命情況不支持?支持的原理是什么?能不能從源碼來說明一下?
如何來二次擴展Spring,比如自定義一個實現自動注入的注解;不使用@Autowried,自己如何開發一個@XXX來完成自動注入?
mybatis源碼當中利用了Spirng的那些擴展?mybatis擴展Spring之后有哪些問題是無法解決的?比如二級緩存怎么解決
eureka源碼當中如何擴展的Spring?比如怎么動態插拔eureka的功能,利用了Spring的那個技術點,或者從源碼說一下
6、Redis
Redis 持久化機制有哪些? 區別是什么?優缺點是什么?
Redis支持的數據類型
為什么 Redis 需要把所有數據放到內存中?
Redis 是單線程的嗎?
Redis 的緩存失效策略有哪幾種?
什么是緩存命中率?提高緩存命中率的方法有哪些?
Redis全局命令及數據庫管理
Redis設計訂單應用場景
Redis緩存雪崩講講看?
什么是緩存穿透?
Redis重啟時加載AOF與RDB的順序
7.中間件
Dubbo完整的一次調用鏈路介紹;
Dubbo支持幾種負載均衡策略?
Dubbo Provider服務提供者要控制執行并發請求上限,具體怎么做?
Dubbo啟動的時候支持幾種配置方式?
了解幾種消息中間件產品?各產品的優缺點介紹;
消息中間件如何保證消息的一致性和如何進行消息的重試機制?
Spring Cloud熔斷機制介紹;
Spring Cloud對比下Dubbo,什么場景下該使用Spring Cloud?
8、分布式
消息中間件如何解決消息丟失問題
Dubbo的服務請求失敗怎么處理
重連機制會不會造成錯誤
對分布式事務的理解
如何實現負載均衡,有哪些算法可以實現?
Zookeeper的用途,選舉的原理是什么?
數據的垂直拆分水平拆分。
zookeeper原理和適用場景
zookeeper watch機制
redis/zk節點宕機如何處理
分布式集群下如何做到唯一序列號
如何做一個分布式鎖
用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是線程安全的嗎
MQ系統的數據如何保證不丟失
列舉出你能想到的數據庫分庫分表策略;分庫分表后,如何解決全表查詢的問題。
9、數據庫
MySQL InnoDB存儲的文件結構
索引樹是如何維護的?
數據庫自增主鍵可能的問題
MySQL的幾種優化
mysql索引為什么使用B+樹
數據庫鎖表的相關處理
索引失效場景
高并發下如何做到安全的修改同一行數據,樂觀鎖和悲觀鎖是什么,INNODB的行級鎖有哪2種,解釋其含義
數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎么解決死鎖
以上就是動力節點Java培訓機構小編介紹的“Java面試如何難?Java面試總結”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關推薦
最新最全java面試題及答案(初級到高級)
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習