應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

2020-10-22 01:00:45

前言

呼!終於拿到阿里offer了,可以放鬆一下休息休息了,想想這將近一個月的面試經歷,實在是太難了!

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

背景

普通本科,非985,非211的一個普通本科,應屆生,在學校的成績算不上有多好(平常玩樂居多,大學嘛,你懂得!),本來自己的能力也就找個相對來說的小公司,這次能拿到阿里offer是我萬萬沒想到的!

突遭疫情

剛進2020年,疫情突然爆發,以迅雷不及掩耳之勢席捲全國!替國家擔憂是肯定的,總不能希望國家來個生化危機吧~~

擔憂以外就是開心了,畢竟可以痛痛快快的打遊戲了~

ps:很多人都懂我的想法吧

擔憂前程

平常還是有關係一些部落格什麼的,能看到一些有意思的東西,還有一些看上去很牛逼的技術(可以拿去和同學吹牛逼)!看到了疫情裁員等等文章,我開始著急了!

被裁掉的程式設計師這麼多,再加上今年和我一起畢業的「程式設計師」,我還能找到工作嗎?

於是我找到了上一屆的學長(阿里P6),問他我這樣的情況該怎麼學習,才能脫離困境!

學長也是異常的給力,首先給了我一份阿里大佬整理的學習檔案,這份檔案涵蓋了Java基礎、網路、資料庫、多執行緒、JVM、設計模式、演演算法、Spirng、微服務、zookeeper、kafka、MQ、Hadoop、Spack、分散式等超多面試常問的核心知識點,還有學長自己整理的面試合集,學習視訊等等,經過長達6個月的學習、將近一個月的面試最終將自己的技術提升到了一個非常高的層次(僅僅想想過的層次)拿到了阿里的offer

分享下阿里七面過程吧

阿里淘系 七面 工程專案經驗基本為0 所以被死磕Java

總結起來:面試官喜歡丟擲一個大點,看你能講多廣多深

一面: 90mins

講專案

講一個集合框架整體框架

分Collection和Map兩大類全部講一遍,每一個介面和對應實現類,他們類各自的特點,性質,基本引數,能講多深講多深

arraylist和hashset區別

為什麼hashmap要在8的時候樹華

根據泊松分佈概率(原始碼註釋裡寫了)

hashmap執行緒安全的方式

hashtable和concurrenthashmap的各自特點,能講多深講多深

為什麼hashtable被棄用了,cch1.7之前和1.8之後的區別

鎖的分類

樂觀鎖、悲觀鎖、自旋鎖、讀寫鎖、排它鎖、共用鎖、分段鎖等等各自特點,以及它們在java中具體的實現方式

Spring IOC的底層實現

XML+dom4j+工廠+單例

索引不適用的條件

索引列上有函數,不滿足最左字首,使用了不等號,使用了範圍查詢等等

索引的分類

B-Tree索引,Hash索引,全文索引,單值索引、唯一索引、複合索引、聚簇索引、非聚簇索引等等,以及它們各自的特點

二面:40mins

講專案

執行緒池瞭解多少

executors建立的幾種執行緒池,直接new ThreadPoolExecutor,7個引數

執行緒池拒絕策略分別使用在什麼場景

Spring AOP的底層實現

動態代理,newProxyInstance,cglib,ASM

講一下代理模式

動態代理,靜態代理

你都瞭解什麼設計模式,他們在JDK中如何體現的

工廠,責任鏈,觀察者,建造,代理,單例,原型等等在JDK中對應的體現。。。

三面coding:2h

千萬級資料量的list找一個資料(多執行緒),搶紅包

四面:50mins

講專案

講一下JVM堆記憶體管理

棧上分配->TLAB->新生代、老年代->可達性分析->GC演演算法->所有垃圾回收器及其優缺點和特點

那到底多大的物件會被直接扔到老年代

G1兩個region不是連續的,而且之間還有可達的參照,我現在要回收其中一個,另一個會被怎麼處理

聽說過CMS的並行預處理和並行可中斷預處理嗎

平常怎麼學習的和職業規劃

五面coding:2h

百萬級int資料量的一個array求和(fork/join)

六面交叉面:20mins

深挖科研專案

七面hr:20min

聊人生

面試肯定不是隻面了阿里,騰訊、美團、位元組大廠也都有過面試,拿到了好幾個offer,最後根據多方面的條件選擇了阿里

再分享一下這段時間整理的面試題

JAVA基礎

  • 物件導向和程式導向的區別
  • Java語言有哪些特點?
  • 關於JVM JDK和JRE最詳細通俗的解答
  • Oracle JDK和OpenJDK的對比
  • Java和C+ +的區別?
  • 什麼是Java程式的主類應用程式和小程式的主類有何不同?
  • Java應用程式與小程式之間有哪些差別?
  • 字元型常數和字串常數的區別?
  • 構造器Constructor是否可被override?
  • 過載和重寫的區別
  • Java物件導向程式設計三大特性:封裝繼承多型
  • String StringBuffer 和 StringBuilder 的區別是什麼? String 為什麼是不可變的?
  • 自動裝箱與拆箱
  • 在一個靜態方法內呼叫一個非靜態成員為什麼是非法的?
  • 在Java中定義一個不做事且沒有引數的構造方法的作用
  • import java和javax有什麼區別?
  • 介面和抽象類的區別是什麼?
  • 成員變數與區域性變數的區別有哪些?
  • 建立一個物件用什麼運運算元?物件實體與物件參照有何不同?
  • 什麼是方法的返回值?返回值在類的方法裡的作用是什麼?
  • 一個類的構造方法的作用是什麼? 若一個類沒有宣告構造方法,該程式能正確執行嗎? 為什麼?
  • 構造方法有哪些特性?
  • 靜態方法和實體方法有何不同
  • 物件的相等與指向他們的參照相等,兩者有什麼不同?
  • 在呼叫子類構造方法之前會先呼叫父類別沒有引數的構造方法其目的是?
  • ==與equals(重要)
  • hashCode與equals (重要)
  • 為什麼Java中只有值傳遞?
  • 簡述執行緒、程式、程序的基本概念。以及他們之間關係是什麼?
  • 執行緒有哪些基本狀態?
  • 關於final關鍵字的一些總結

多執行緒與高並行

  • 什麼是執行緒和程序?
  • 請簡要描述執行緒與程序的關係,區別及優缺點?
  • 說說並行與並行的區別?
  • 為什麼要使用多執行緒呢?
  • 使用多執行緒可能帶來什麼問題?
  • 說說執行緒的生命週期和狀態?
  • 什麼是上下文切換?
  • 什麼是執行緒死鎖?如何避免死鎖?
  • 說說sleep0方法和wait0方法區別和共同點?
  • 為什麼我們呼叫 start() 方法時會執行 run() 方法,為什麼我們不能直接呼叫 run() 方法?
  • volatile關鍵字
  • ThreadLocal
  • 執行緒池
  • Atomic原子類
  • AQS
  • Reference

JVM

  • 介紹下Java記憶體區域(執行時資料區)
  • 說一下Java物件的建立過程
  • 物件的存取定位有哪兩種方式?
  • 說一下堆記憶體中物件的分配的基本策略
  • Minor Gc利和Full GC有什麼不同呢?
  • 如何判斷物件是否死亡?(兩種方法)
  • 簡單的介紹一-下強參照,軟參照,弱參照,虛參照
  • 如何判斷一 個常數是廢棄常數?
  • 如何判斷一個類是無用的類?
  • 垃圾收集有哪些演演算法,各自的特點?
  • HotSpot為什麼要分為新生代和老年代?
  • 常見的垃圾回收器有哪些?

面試題肯定不止這些,不過頭條文章篇幅有限制,就展示這些吧,面試題和答案都整理成了PDF檔案,需要的朋友文末自取!

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

學長分享的阿里大佬整理的Java核心知識點手冊

為啥分享出來?說不定你以後也進了阿里並且和我同一個部門呢,多個朋友多條路!(進阿里後的感悟,人脈很重要)

Java基礎

這份手冊真的超級nice,重點都展示的非常透徹、學起來非常輕鬆

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

網路

網路這塊挺重要的,剛開始我也沒意識到這點,還是在學長的提點下學的

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

資料庫

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

多執行緒與高並行

手冊還附帶學習圖譜,很詳細,也很清楚,就是不知道最後發出去後怎麼樣。。。

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

JVM

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

演演算法

應屆小菜鳥,啃完阿里大佬整理學習手冊,七面拿到阿里offer

 

就展示這麼多吧,我想已經足夠你瞭解這份手冊了,篇幅限制,我也沒辦法。。。

最後

前面也有提到過,阿里面試問的很深,其實不只是阿里,其他大廠也一樣,另外每個大廠又有不同的側重點,像位元組跳動非常重視演演算法,四面下來問的演演算法題不少!

上面提到的學習手冊還有整理的面試資料全部免費分享給大家,需要的朋友加下方小助理VX即可免費領取到

100%領取到,領取不到的可以在文章下面罵我!