走過路過不要錯過java
點擊藍字關注咱們mysql
轉眼間,又快到了年末,今年是最不怕平凡的一年,年初隨着疫情襲來,在家辦公了好幾個月。也就是今年,也是本身在上海的第10個工做年頭,本身也慢慢的步入了30歲的中年危機。因此在上個月底,本身也是果斷的選擇了離職,就此踏上了你們所熟悉的金九銀十就業面試高峯的大隊伍中。面試
在此面試期間,投遞了螞蟻金服、百度、滴滴、美團、阿里、京東等一線大廠,還有其餘獨角獸,從中也去面試了幾家,面試的內容大概的也差很少,大多數問的都是些線程併發、spring、分佈式等內容。redis
但讓我印象最深入的,仍是去阿里的面試,由於我對面試官問個人那些技術問題,在其餘廠子面試的,我以爲是都有一番風味。算法
1:自我介紹:
2:面:談談你作過項目中印象較深或自認爲作的比較好的地方?
答:我以爲我在Xx作的不錯,用了XX需求實現XX功能,性能提升了N倍........等噼裏啪啦的說了一堆。
3:面:你說使用到了AOP,能談談它的實現原理嘛?
答:它是依靠動態代理實現的,動態代理又分爲JDK自身的以及CGLIB..............
4:面:嗯,能說說他們的不一樣及優缺點嘛?
答:JDK是基於接口實現,而CGLIB繼承代理類。。。(就是這樣會直問下去,若是聊的差很少了就開始問一些零散的問題:)
5:JMM內存模型,如何劃分的?分別存儲什麼內容?線程安全與否?
6:類加載機制,談到雙親委派模型後會問到哪些違反了雙親委派模型?爲何?爲何要雙
7:親委派?好處是什麼?
8:平時怎麼使用多線程?有哪些好處?線程池的幾個核心參數的意義?
9:線程間通訊的方式?
10HashMap的原理?當談到線程不安全時天然引伸出ConcurrentHashMap,它的實現原理?
11:分庫分表如何設計?垂直拆分、水平拆分?
12:業務ID的生成規則,有哪些方式?
13:SQL調優?平時使用數據庫有哪些注意點?
14:當一個應用啓動緩慢如何優化?
15:對樂觀鎖和悲觀鎖的理解;spring
其餘的想不起來了,大概是以上這些,最後還簡單的聊了以前作過得項目上的問題,結束以前告訴我以後會換一個同事和我溝通,聽到這樣的回覆一面應該就這樣過了。sql
首先確認對阿里的意向度(若是異地更會考慮對工做地點(杭州)的意向度!阿里很看重這個);其次面試官通常會針對您所作過的項目來作具體技術的交流,會比較關注我的對項目細節是否是掌握到位,主要考察java的技術基礎和原理,好比Spring框架以及數據庫和JVM三個方面,也會交流到分佈式、線程池的實現等等,重點考察是否是有比較鑽研技術和技術上的亮點【不必定每一個面都很厲害但必定要有亮點】;數據庫
1:變着法的問了一大堆線程池的知識 (主要考對應的參數)
2:java內存模型
3:lock和synchronized的區別
4:B+樹和B-樹的區別
5:複合索引
6:彙集索引和非彙集索引的區別?
7:數據庫索引 主鍵和惟一索引有什麼區別
8:索引失效條件,何時該創建索引
9:innDB和MyISAM的區別?
10:線程安全(阻塞同步,非阻塞同步,無同步)
11:說說Java 類加載過程?
12:描述一下 JVM 加載 Class 文件的原理機制?
13:GC 是什麼? 爲何要有 GC?
14:簡述 Java 垃圾回收機制。
15:如何判斷一個對象是否存活?(或者 GC 對象的斷定方法)
16:垃圾回收器的基本原理是什麼?垃圾回收器能夠立刻回收內存嗎?
有什麼辦法主動通知虛擬機進行垃圾回收?
17:stop() 和 suspend() 方法爲什麼不推薦使用?
18:sleep() 和 wait() 有什麼區別?
19:同步和異步有何異同,在什麼狀況下分別使用他們?
20:簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?
21:請說出你所知道的線程同步的方法。
22:什麼是線程餓死,什麼是活鎖?
23:什麼是 ThreadLocal?後端
根據項目深刻的瞭解技術實力,瞭解您的知識面,瞭解您的問題解決能力以及技術靈活運用能力,也經過這一過程考察團隊合做能力、學習主動性和創新性,能夠挑選2-3個作過的有典型性的項目作一個仔細 技術回顧和本身獨到的理解【這會成爲您的加分項】;緩存
1:關於Java異常的續承層次結構,講述異常的續承關係;
2:java線程如何啓動?java中加鎖的方式有哪些,怎麼個寫法?
3:對樂觀鎖和悲觀鎖的理解;
4:JVM中堆是如何管理的,JVM的內存回收機制,介紹一下
5:redis緩存和memcached緩存的區別,以及各自的優劣勢
6:微服務架構:dubbo和springcloud的區別,以及各自對應的使用場景。
7:線程池如何作負載均衡
8:如何設計單點登陸,說下單點登陸的原理
9:synchronized的實現原理?Volatile能保證原子性嗎?爲何?
10:講一下GC?
11:.TCP三次握手,爲何三次握手?
12:mysql死鎖,怎麼解決,若是不要求執行順序,死鎖怎麼解決
面:下面問下題外話:
13:你以爲阿里巴巴怎麼樣?
14:你對996你有什麼見解呢?
15:說下你的強弱點
他們最後的高管複試會涉及到相關的技術問題,大部分是對你的總體價值觀作宏觀的把控(好比上進心,責任心,心態,工做激情等)
基本就是從大方向瞭解一下您的心態、抗壓能力,工做中的角色、將來大體的規劃以及對阿里的意向度
【技術基礎以及的問題多看看書準備下就好了,不懂的直接說不懂不要緊的;在項目細節上多把關一下,根據項目有針對性的談本身的技術亮點,能表達清楚,能夠引導面試官來問你比較擅長的技術問題,我的就能夠盡情發揮】
阿里比較喜歡的人才特色:對技術有熱情,強硬的技術基礎實力;主動,善於團隊協做,善於總結思考;
在我面試的這十幾家大大小小的公司中,我發現,那些大廠的面試反而比較容易,那些小一點的面試比較苛刻的。反正就是挑你魚裏的刺。最後,我在分享一下個人面經
第一點:包裝一份屬於本身的獨特的簡歷
第二點:對面試的公司作好相應的準備
第三點:在面試過程當中要學會主動問問題
第四點:在技術問題上要如實的回答問題(會就會,不會就不會)
第五點:要有過硬的技術知識
第六點:再有過硬的技術知識下,前提是要有一套系統性的學習體系。
看到這裏的朋友應該都是老鐵了,我也把上文提到的大多數面試題須要掌握的一些核心技術知識點分享給你們。
線程
jvm內存區域
jvm運行時內存
垃圾回收於算法
GC分代收集算法VS分區收集算法
GC垃圾收集器
Java IO/NIO
jvm類加載機制
JAVA併發知識庫
JAVA線程實現建立方式
4種線程池
線程生命週期
java鎖
線程基本方法
同步鎖於死鎖
線程池原理
線程調度
因爲時間有限,內容太長。看到這裏的都是真粉真愛,前面的面試題總結,但願能給到你們幫助,後面的核心知識點整理,因爲文檔太長,只能截到這裏。
若是你們想獲取以上java核心知識點文檔,關注公衆號【java爛豬皮】後臺回覆 [ java ]便可免費獲取。
往期精彩推薦—END—
關注做者微信公衆號 —《JAVA爛豬皮》
瞭解更多java後端架構知識以及最新面試寶典