JAVA后端面試經(jīng)歷分享:阿里 字節(jié) 網(wǎng)易端 已拿offer

前段時間遇到剛畢業(yè)沒多久的實習(xí)生,已經(jīng)在阿里實習(xí)中經(jīng)受苦難50多天了。向他請教了一些他的面試經(jīng)歷,在這分享給大家

以下正文

情況介紹:

本科階段:人在雙非,問就是混

當(dāng)前寧波某軟院渣碩,去年7月份開始Java的學(xué)習(xí),道阻且長

當(dāng)前面試情況:騰訊(一面掛)、美團(二面掛)、網(wǎng)易嚴(yán)選(成功)、杭州字節(jié)lark(口頭offer)、阿里新零售業(yè)務(wù)平臺(成功)、滴滴交易平臺(HR面)

面筋總結(jié):

因為并不是每家都有做錄音,忘了一些面試問題。就貼一下面過比較普適性的問題。

此外, 只是做一點些關(guān)鍵詞的提示,具體達到面試要求需要自己去詳細的理解和掌握

文章所有面試題和答案小編都為大家整理了:私聊,暗號:面試,還有更多大廠面試專題資料哦

image

JVM:

1. 【高頻】Java內(nèi)存區(qū)域 :

{ 程序計數(shù)器 , 虛擬機棧 ,本地方法棧 , <typo id="typo-379" data-origin="堆" ignoretag="true">堆</typo> ,方法區(qū) ,元空間 } // 每個區(qū)域要能介紹一下

2. Minor GC 觸發(fā)條件 : eden區(qū)剩余內(nèi)存是否足夠 兩種情況分開分析

FULL GC 觸發(fā)條件 : Minor GC 平均晉升空間大小 > 老年代連續(xù)剩余空間,則觸發(fā)FULL GC

**3. 【高頻】 判斷對象死亡的方法 : **{ 引用計數(shù)法 , 可達分析算法 }

  ** 深入一些,:GC root對象有哪些?為什么選擇他們做GC root對象**

4. 垃圾收集算法 : { 標(biāo)記清除算法 、標(biāo)記整理算法 、 復(fù)制算法 、 分代收集算法 }

    **深入一些: 各個算法的優(yōu)點和適用場景**

**5. 垃圾收集器 : **{ serial 、 parallel 、 CMS 、 G1 }

CMS 、G1 重點 , 介紹工作流程和優(yōu)缺點

6. 內(nèi)存泄漏

例子: { 單例 , 容器 等等}

原因 : 長生命周期持有短生命周期引用

7. 引用類型 ; { 強引用、 軟引用、 弱引用 、 虛引用 }

8. 【高頻】 類加載過程 : { 加載 , 連接 , 初始化 }

    **有哪些類加載器 , 能否自定義 Java.Object.String 的類加載器 ?**

9. 【高頻】 雙親委派機制 介紹 & 作用

image

Java :

1. ArrayList 和 LinkedList 的區(qū)別

2. HashMap & ConcurrentHashMap 的比較 : 線程安全問題等等

** 深入一些 : HashMap 為什么線程不安全? 能否舉例 = { 并發(fā)resize()觸發(fā)閉環(huán)結(jié)構(gòu) ,覆蓋put操作 }**

3. 【高頻】 HashMap 的 相關(guān)問題 // HashMap系列需要通過關(guān)鍵源碼理解,比較重要

  **為什么 HashMap的size 為 2的冪次方 ?**

** HashMap resize()過程能否介紹 ?**

** HashMap效率受什么影響 (負載因子、hash數(shù)組size)?**

** HashMap中擾動函數(shù)的作用 ?**

**4. Hashtable 和 HashMap的區(qū)別 **: { 底層數(shù)據(jù)結(jié)構(gòu) (JDK1.8后不同)、父類不同 、擴容方法不同 、 線程上鎖范圍不同(重點) }

5. equals 和 == 區(qū)別

5. 為啥重寫equals要重寫hashCode()

hash值相等,而兩個對象不一定equals

6 . 【高頻】 String StringBuffer StringBuilder 區(qū)別 和各自使用場景

** 深入一些 : String 是如何實現(xiàn)它不可變的? 為什么要設(shè)置String為不可變對象 ? (字節(jié)一面這個問題給我問懵了)**

7. 接口和抽象類區(qū)別

8. 重寫和重載的區(qū)別

9. 深拷貝和淺拷貝區(qū)別

10. Java三大特性

11. Object的方法 : { finalize 、 clone、 getClass 、 equals 、 hashCode }

12. 【高頻】 設(shè)計模式 : { 單例模式 、 工廠模式 、 裝飾者模式 、 代理模式 、 <typo id="typo-1805" data-origin="策略" ignoretag="true">策略</typo>模式 等等} (此處我的掌握也不是很好)

**13. 深入一些 : **單例模式為什么采用雙檢測機制 ? 單例為什么用Volatile修飾? 裝飾模式和代理模式區(qū)別?

并發(fā) :

**1. 線程的狀態(tài) **: { new ,runnalbe , wait , time-wait , block , terminated }

2. 進程 、 線程 、 <typo id="typo-1993" data-origin="協(xié)程" ignoretag="true">協(xié)程</typo> 的含義和區(qū)別 // 個人理解 是一組漸進提出的概念

**3. 進程間通信方式 **: { 管道 、FIFO 、 信號量 、 共享內(nèi)存 、 消息隊列 、 Socket }

4. 如何避免死鎖 ? 死鎖的四個必要條件

5. Sleep和wait的區(qū)別

6. 【高頻】Sychronized 和 lock 的區(qū)別 ?

7. Sychronized的底層優(yōu)化 : { 無鎖、偏向鎖、輕量級鎖 、重量級鎖 }

8. volatile的作用 : { 指令重拍 、 保證變量的可見性(設(shè)計JMM)}

9. ThreadLocal 底層原理

10. 【高頻】 線程池

**11. 線程池構(gòu)造器涉及哪些參數(shù) : **{ corePoolSize , maximumPoolSzie , timeout , timeUnit , RejectHandler , 等待隊列 , 線程工廠 }

12. 介紹線程池工作過程?

13. 線程池拒絕策略<typo id="typo-2460" data-origin="那些" ignoretag="true">那些</typo>?

14. 適用Executor創(chuàng)建線程池的弊端?

15. AQS 框架原理和 源碼理解

計網(wǎng) :

1. TCP/IP 模型 & OSI模型

2. 應(yīng)用層、傳輸層、網(wǎng)絡(luò)層常見協(xié)議 : { DNS 、 HTTP 、FTP、 STMP 、SSL、 TCP、 UDP、 ARP、 IP }

3. 【高頻】 TCP 三次握手 、 TCP四次揮手

** 深入一些 : 為什么三次握手,能否兩次?**

 **   四次揮手中什么是 time_wait 狀態(tài) ? close-wait 狀態(tài)?**

** time_wait狀態(tài)什么場景下過多 , 會造成什么問題?**

4. TCP可靠性 : { ARQ 、 流量控制 、 擁塞控制 、 校驗和 }

**5. 【高頻】輸入URL顯示主頁的過程 ** // 個人僅遇過一次,但是看面經(jīng)感覺問的挺多

**6. HTTPS 和HTTP 區(qū)別 ** // 字節(jié)專屬問題

** 深入一些 : HTTPS 加密過程介紹 ?**

7. Cookie和Session的區(qū)別

8. Http1.0 和HTTP1.1 和 Http2.x 的區(qū)別

9. get和post的區(qū)別

10. 常見的狀態(tài)碼

操作系統(tǒng)(相對較少):

1. 用戶態(tài)和內(nèi)核態(tài)的區(qū)別

2. fork()作用

3. Select poll epoll的區(qū)別

4. 虛擬內(nèi)存作用? 內(nèi)存分頁的作用?

5. 缺頁異常的介紹

6 . OOM問題和 StackOverFlow的區(qū)別

MySQL:(對redis 需要學(xué)習(xí) , 個人理解不深不多介紹) // MySQL比較重要

1. 【高頻】MyISAM 和 InnoDB的區(qū)別 : {是否支持行鎖 、 是否支持十五 、 是否支持 MVCC 、 底層索引結(jié)構(gòu)不同 }

2. 事務(wù)特性ACID

** 深入一些 : 為什么要有一致性 ? AID不是已經(jīng)保證了一致性了嗎 ?**

**3. 并發(fā)事務(wù)帶來的問題 : **{ 臟讀 、 修改丟失 、 不可重復(fù)讀 、 幻影讀 }

4. 【高頻】<typo id="typo-3467" data-origin="事務(wù)" ignoretag="true">事務(wù)</typo>的隔離級別

5, 【高頻】 MVCC機制

6 . 【高頻】索引

** 為什么索引使用B+樹結(jié)構(gòu),而不是B樹**

** 為什么索引使用B+樹結(jié)構(gòu),而不是紅黑樹 : { 磁盤預(yù)讀取 、紅黑樹高度 }**

7. 聚簇索引和非聚簇索引區(qū)別? 主鍵索引和二級索引了解嗎?

8 . 為什么不對每個列創(chuàng)建索引呢?

9. 【高頻】SQL語句優(yōu)化 ,SQL題目(字節(jié)要求擼代碼)

10. explain中 rows type key extra字段的含義?

11. count(1) count() count(列值)的區(qū)別*

其他:

需要了解linux的指令和 git指令 ,

對一些大數(shù)據(jù)場景題需要了解。 例如 1億數(shù)據(jù)取top10 , 1億數(shù)據(jù)取出現(xiàn)頻率top10,1億URL取出重復(fù)URL

64匹馬,8個跑道,最少比賽幾次選出前八?等智力題(字節(jié)???

此外,項目相關(guān)的知識體系需要準(zhǔn)備, 例如項目涉及Netty和Zookeeper,則會去準(zhǔn)備相應(yīng)的問題。此處因人而異。

以上的面試問題及答案小編都為大家準(zhǔn)備好啦,私聊免費領(lǐng)取,暗號:面試 就可以免費領(lǐng)取啦,還為大家準(zhǔn)備了更多其他學(xué)習(xí)資料哦

image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容