跳槽時時刻刻都在發生,不必侷限在金三銀四,金九銀十。但金銀月的確讓我學到不少。java
今天給你們分享下我剛過不久的金三銀四跳槽中整理的Java面試大綱,其中大部分都是面試過程當中的面試題,能夠對照這查漏補缺,固然了,這裏所列的確定不可能覆蓋所有方式。面試
大部分狀況,這是一場面試的開門題,面試官問這個問題,主要是考察你的概述能力和全局視野。有的人常常抱怨本身天天在堆業務,但沒有成長。事實上,不少狀況下確實在堆業務,但並非沒有成長的。並不是作中間件或者技術架構纔是成長,例如咱們的需求分析能力,溝通協做能力,產品思惟能力,抽象建模能力等都是一個很是重要的硬實力。算法
好的,如今進入正文。如下面試題爲我的在面試過程當中所遇到的,僅供參考!若有錯誤,望指出。sql
HashMap&ConcurrentHashMapdocker
再談談一致hash算法?數據庫
樂觀鎖&悲觀鎖?設計模式
可重入鎖&Synchronize?tomcat
事務四大特性?安全
事務的二段提交機制?數據結構
聚簇索引&非聚簇索引?
用本身的實踐經歷說一下索引的使用場景(說一個就要舉一個例子)?
當前讀&快照讀?
類加載過程?
雙親委派機制及使用緣由?
說說GC算法?
Http&Https的區別
Https的加密方式
線程池的核心參數和基本原理
線程池的調優策略
說說本身參與的項目,技術難度在哪裏?
Collections.sort底層排序方式?
排序穩定性?
具體場景的排序策略?
Http請求過程,DNS解析過程
三次握手四次揮手
簡述線程池和併發工具的使用?
數據庫索引原理
頻繁老年代回收怎麼分析解決
Spring IOC、AOP?
講講SpringBoot/SpringCloud的一些應用?
阻塞隊列不用java提供的本身怎麼實現,condition和wait不能用
擁塞窗口講一講,爲何要用慢啓動算法
負載均衡的原理?
Redis的數據一致性問題(分佈式多節點環境 & 單機環境)?
講講docker容器?
如何實現何高併發下的削峯,限流?
你有什麼職業規劃(每一個面試官都要問這個問題,三面也是)
java經常使用的數據結構有哪些?哪些是線程安全的?是怎麼保證線程安全的?
Redis中的Lua有沒有使用過? 能夠用來作什麼? 爲何能夠這麼用?
線程池內部工做原理能夠說一下麼?
死鎖是什麼意思,造成條件是什麼?出現死鎖是能夠經過什麼方式去排查。
在交易過程當中如何放在用戶在支付時的重複支付(交叉支付),請寫出你瞭解的方案或使用的過的方案。
數據庫索引有哪幾種,他們之間的區別。
程序開發時經過開發工具DeBug調試時,控制檯顯示的內容都包含什麼?哪些內容能夠幫助你發現問題和解決問題。
RPC通訊過程當中,假設A系統提供了一個方法入參是一個JavaBean,出參也是一個JavaBean。另外兩個系統B系統、C系統調用接口,調用方B想讓提供方A增長一個返回參數,假設服務提供方A增長了返回參數,請問C系統調用方須要作什麼處理?
瞭解哪些設計模式,用僞代碼實現一個你熟悉的設計模式。
講一下怎麼使用分佈式鎖。
說說HashMap的原理, 以及HashMap如何擴充bucket的大小。
Redis的Pipeline是用來幹什麼的?
Mysql索引的分類(Btree, hash),各自使用什麼狀況 。
說說Myisam, Innodb區別。
知道哪些負載均衡算法。
說一下Btree的查找原理。
簡述三次握手,若是c端發起握手請求,s端沒法馬上創建鏈接應該回應什麼?
http和https的區別,https原理,http2.0與1.0的區別。
Java的垃圾回收機制,Java文件加載機制,tomcat類加載機制,鎖機制,jvm原理及線上調優,jvm內存模型。
多線程,有哪些能夠保持進程同步的方法,建立線程的幾種方法,對i++多線程訪問你會怎麼作。
Java的設計模式,單例有什麼模式,懶漢爲何加volotile,volotile的內存屏障,如何避免死鎖。
考慮單例模式的編寫,要線程安全且內存消耗小(劍指offer原題)。
String、StringBuilder、StringBuffer區別;String類能被繼承嗎?爲何?
在白紙上手寫二分法排序算法(lintcode上原題);二分查找的思想。
查找單鏈表中倒數第k個節點的算法,手寫(lintcode上原題);最多見的排序算法你見過哪些,快排的基本思想及時間複雜度。
常見的數據結構有哪些。
hashmap、hashcode同樣,不equals怎麼處理 ;hashcode實現原理,currentHashMap原理,實現細節,怎麼實現同步的;類爲何要有hascode方法,是否是主要在集合類中都要實現hashcode方法;equals方法怎麼實現;兩個不一樣的對象可能有相同的hashcode值嗎;經常使用集合有哪些。
tcp三次握手,四次揮手協議。
架構設計一個開發性問題,設計一個Nginx管理的中間件,怎麼設計。
全部的類都繼承與object,你用過object類的直接子類有哪些,object類經常使用的方法有哪些。
Java會出現內存泄漏嗎,若是回,在哪一種狀況下?
抽象類和接口的區別。
平時怎麼擴展本身的專業知識水平。
最後祝你們大廠offer拿到手軟,喜歡對你有幫助的話記得加個關注不迷路哦
還有關注我私信回覆【面試】能夠領取到一些我的收集的面試及電子書資料,或許對你有幫助!