2021 金三銀四的最後一次 Java 面試,快手三面一輪遊,如今已拿意向書!
2021 金三銀四的最後一次Java面試,我去了快手。快手的面試挺有挑戰性的,而且還特別有意思,感覺啥都能問到。(二面是10天前約的面試,差點要忘了)然後是HR面,前天我就收到offer。
一面二面啥的我都忘記具體的了,就簡單的總結一下
1 基礎
-
為什麼 Java 中只有值傳遞?
-
int 範圍?float 範圍?
-
hashCode 與 equals,什麼關係?
-
String StringBuffer 和 StringBuilder 的區別是什麼?String 為什麼是不可變的?
-
Java 序列化中如果有些欄位不想進行序列化 怎麼辦?
-
構造器 Constructor 是否可被 override?
-
java 異常體系?RuntimeException Exception Error 的區別,舉常見的例子
-
字元型常量和字串常量的區別?
-
在呼叫子類構造方法之前會先呼叫父類沒有引數的構造方法,其目的是?
2 集合
集合這塊關注一下 1.8 的實現吧,和 1.7 相比變化了很多
-
ArrayList和linkedList的區別?
-
堆是怎麼儲存的,插入是在哪裡?
-
HashMap和HashTable的區別?講一下 hashMap 原理。hashMap 可以併發讀麼?併發寫會有什麼問題?
-
集合類存放於 Java.util 包中, 主要有幾種介面?
-
Array與ArrayList有什麼不一樣?簡單介紹下 ArrayList 怎麼實現,加操作、取值操作,什麼時候擴容?
-
說說ConcurrentHashMap?頭插法還是尾插法?擴容怎麼做?
-
集合在迭代的過程中,插入或刪除資料會怎樣?
3 併發
-
notify()和notifyAll()有什麼區別?
-
volatile 是什麼?可以保證有序性嗎?
-
為什麼wait, notify 和 notifyAll這些方法不在thread類裡面?
-
SynchronizedMap和ConcurrentHashMap有什麼區別?
-
什麼是執行緒安全?Vector是一個執行緒安全類嗎?
-
執行緒程式和執行緒的區別?並行和併發的區別?瞭解協程麼?程式間如何通訊:程式 A 想讀取程式 B 的主存怎麼辦?執行緒間通訊?執行緒的生命週期有哪些狀態?怎麼轉換?wait 和 sleep 有什麼區別?什麼情況下會用到 sleep?怎麼停止執行緒?怎麼控制多個執行緒按序執行?
-
說說自己是怎麼使用 synchronized 關鍵字,在專案中用到了嗎?synchronized關鍵字最主要的三種使用方式
-
為什麼要用 join()方法?
-
什麼是多執行緒中的上下文切換?
-
死鎖與活鎖的區別,死鎖與飢餓的區別?
-
Java 中用到的執行緒排程演算法是什麼?
-
什麼是原子操作?在 Java Concurrency API 中有哪些原子類(atomic classes)?
-
什麼是阻塞佇列?阻塞佇列的實現原理是什麼?如何使用阻塞佇列來實現生產者-消費者
-
模型?
-
AQS瞭解 AQS 麼?講講底層實現原理AQS 有那些實現?講講 AtomicInteger 的底層實現
-
為什麼我們呼叫 start()方法時會執行 run()方法,為什麼我們不能直接呼叫 run()方
-
法?
-
Java 中你怎樣喚醒一個阻塞的執行緒?
-
什麼是執行緒組,為什麼在 Java 中不推薦使用?
4 IO
IO 這塊我不熟,沒有多講
-
瞭解 NIO 麼?講講
-
NIO 與 BIO 有什麼區別?
-
瞭解 Netty 原理麼
JVM
1 記憶體與 GC
-
GC 是什麼?為什麼要有 GC?
-
jvm 記憶體區域分佈?gc 發生在哪些部分?
-
你能保證 GC 執行嗎?
-
怎麼獲取 Java 程式使用的記憶體?堆使用的百分比?
-
介紹一下垃圾回收過程。
-
垃圾回收演算法的瞭解。現在用的什麼回收演算法?
-
什麼時候會觸發FullGC
-
現在使用的什麼垃圾回收器?知道哪些?講講 G1
-
容器的記憶體和 jvm 的記憶體有什麼關係?引數怎麼配置?
2 異常與調優
-
線上有什麼 jvm 引數調整?
-
oom 問題排查思路
-
線上問題排查,突然長時間未響應,怎麼排查,oom
-
cpu 使用率特別高,怎麼排查?通用方法?定位程式碼?cpu高的原因?
-
頻繁 GC 原因?什麼時候觸發 FGC?
-
怎麼獲取 dump 檔案?怎麼分析?
3 類載入器
-
怎麼實現自己的類載入器?
-
類載入過程?
-
初始化順序?
Spring
-
不同版本的 Spring Framework 有哪些主要功能?
-
講一下 ioc、aop
-
ioc 怎麼防止迴圈依賴
-
aop 的實現原理、動態代理過程
-
區分 BeanFactory 和 ApplicationContext?
-
spring bean 容器的生命週期是什麼樣的?
-
@Autowired 註解有什麼用?
-
使用 Spring 訪問 Hibernate 的方法有哪些?
-
Spring 處理請求的過程?
Redis
-
為什麼要用 redis /為什麼要用快取(高效能、高併發)
-
redis 常見資料結構以及使用場景分析(String、Hash、List、Set、Sorted Set)
-
Redis 常見異常及解決方案(快取穿透、快取雪崩、快取預熱、快取降級)
-
分散式環境下常見的應用場景(分散式鎖、分散式自增 ID)
-
Redis叢集方案應該怎麼做?都有哪些方案?
-
Redis 叢集的主從複製模型是怎樣的?
-
redis 持久化機制(怎麼保證 redis 掛掉之後再重啟資料可以進行恢復)
-
如何解決 Redis 的併發競爭 Key 問題?
-
如何保證快取與資料庫雙寫時的資料一致性?
-
redis 的 zset 的使用場景?底層實現?為什麼要用跳錶?
MySQL
-
事務的併發?事務隔離級別,每個級別會引發什麼問題,MySQL預設是哪個級別?
-
MySQL的MyISAM與InnoDB兩種儲存引擎在,事務、鎖級別,各自的適用場景?
-
有哪些鎖(樂觀鎖悲觀鎖),select 時怎麼加排它鎖?
-
sql查詢語句確定建立哪種型別的索引?如何最佳化查詢?
-
什麼是臨時表,臨時表什麼時候刪除?
-
mysql 髒頁?
-
分庫分表有哪些策略?怎麼保證 id 唯一?
-
非關係型資料庫和關係型資料庫區別,優勢比較?
-
資料庫的讀寫分離、主從複製,主從複製分析的 7 個問題?
-
MySQL都有什麼鎖,死鎖判定原理和具體場景,死鎖怎麼解決?
-
資料庫崩潰時事務的恢復機制(REDO日誌和UNDO日誌)?
-
對 uuid 的理解?知道哪些 GUID、Random 演算法?
-
主鍵選隨機 id、uuid 還是自增 id?為什麼?主鍵有序無序對資料庫的影響?
-
主從複製的過程?複製原理?怎麼保證強一致性?
Kafka
-
生產者和消費者的命令列是什麼?
-
Kafka 怎麼保證資料可靠性?
-
講講 kafka 維護消費狀態跟蹤的方法
-
為什麼需要訊息系統,mysql 不能滿足需求嗎?
-
Kafka 判斷一個節點是否還活著有那兩個條件?
-
Kafka 與傳統 MQ 訊息系統之間有三個關鍵區別?
-
kafka 分散式(不是單機)的情況下,如何保證訊息的順序消費?
-
kafka 如何不消費重複資料?比如扣款,我們不能重複的扣
網路
-
tcptcp 有哪些機制確保可靠性?擁塞控制怎麼實現?close_wait 太多怎麼處理?為什麼會出現這種情況?
-
講講三次握手,四次揮手?
-
keepalive 有什麼用?Https 原理?知道哪些 http 狀態碼有哪些?http 有哪些請求方法?put、post 實現上有什麼區別?
-
前後端分離與不分離的區別?各有什麼優缺點?
-
常見 web 攻擊有哪些?瞭解 csrf 攻擊麼?
-
nginx 達到上限了怎麼辦?怎麼對 nginx 負載均衡?dns?
-
nginx 負載均衡有哪些演算法?各自有什麼優缺點?
-
restful 的作用?有哪些優點和缺點?
-
什麼是 cdn?header 中涉及到快取的欄位有哪些?cookie session 介紹一下html 頁面,怎麼與後端互動?流程是什麼?涉及到哪些元件?http 協議,報文格式?
設計模式
-
什麼是設計模式?你是否在你的程式碼裡面使用過?
-
Java 中什麼叫單例設計模式?請用 Java 寫出執行緒安全的單例模式
-
在 Java 中,什麼叫觀察者設計模式?
-
舉一個用 Java 實現的裝飾模式(decorator design pattern) ?它是作用於物件層次還是類層次?
-
單例對於單例,你知道哪些實現方法?實現一個懶載入單例雙重校驗鎖為什麼需要雙重校驗?
-
使用工廠模式最主要的好處是什麼?在哪裡使用?
分散式
-
有哪些分散式元件是你最熟悉的,簡單聊一聊。
-
cap 是指什麼?mysql 滿足 cap 中哪些?
-
分散式鎖有哪些方式可以實現?各有什麼優缺點?
-
什麼是一致性 hash?自己實現一致性 hash,會用什麼資料結構?
微服務
-
微服務架構有哪些優勢?
-
單片,SOA 和微服務架構有什麼區別?
-
什麼是 RPC?怎麼實現冪等性?
-
什麼是 REST / RESTful 以及它的用途是什麼?
-
配置中心有哪些選項?apollo 的架構?怎麼無感實現已載入資料更新?
-
講一下熔斷概念?熔斷原理?令牌桶?熔斷三個狀態關係?
-
熔斷會影響效能麼?有遇到過線上發生熔斷麼?不加會怎樣?
演算法題
基本都會問時間複雜度
-
有哪些常用排序演算法?
-
手寫快排,快排時間複雜度是多少?
-
快排演算法是不是穩定的?什麼是穩定性?
-
給定一個字母組成的字串,找出不含有重複字元的最長子串的長度。
-
9 個硬幣中有一個劣幣,用天平秤,最壞幾次?
-
深度優先,廣度優先
-
括號匹配,時間複雜度,空間複雜度
-
單向連結串列的歸併排序
-
1g 大小檔案,裡面每行是最大 16k 的單詞,限制記憶體 1m,統計單詞頻率最多的 100 個單詞
-
手寫 100 位帶小數的大數字的減法
你有什麼想問的?+Offer 選擇?
-
部門定位?崗位職責?目前在做什麼業務?薪酬福利介紹?
-
目前手頭的 offer 情況?這些公司你自己有什麼傾向性呢?最看重什麼因素?想加入一個怎麼樣的團隊?
-
你的預期薪酬是多少?目前的薪資情況?
-
最近一年的績效情況?
補充一下我2020下半年的offer情況,其實是拿到了美團架構、快手主 app、猿輔導斑馬、騰訊 csig 等意向書的。而且我覺得面試前的““練手””十分重要,像我前期“裸面”就硬生生的浪費了阿里、螞蟻、位元組、Shopee 等的面試機會。所以,在這裡我給大傢伙的建議就是一定要做好充足的準備,不然也是耽擱面試官和自己的時間,並且面試的時候也會手足無措,畢竟肚子裡沒有貨啊!
最後再三思考,還是選擇了快手,準備下週一入職了!大家加油,跳槽面試無時不在,若是還沒準備好,我建議等過完年去參加春招提前批也不錯,但是這段空餘的時間你可不能浪費,好好把握!
說到這兒了,最後在出來放一波福利吧!希望可以幫助到大家!
千千萬萬要記得:多刷題!!多刷題!!
之前演算法是我的硬傷,後面硬啃了好長一段時間才補回來,演算法才是程式設計師的靈魂!!!!
篇幅有限,以下只能截圖分享部分的資源!!
(1)多執行緒(這裡以多執行緒為代表,其實整理了一本JAVA核心架構筆記集)
(2)刷的演算法題(還有左神的演算法筆記)
(3)面經+真題解析+對應的相關筆記(很全面)
在這裡,最後只一句話:祝大家offer拿到手軟!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000181/viewspace-2774321/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 位元組提前批後端開發一、二、三面面經,已意向書!後端
- 金三銀四,記錄一次前端面試經歷前端面試
- 金三銀四跳槽季,Java面試大綱Java面試
- 網易遊戲-一面-二面-三面+offer意向書遊戲
- 金三銀四的面試黃金季節,Android面試題來了!Android面試題
- 金三銀四,如何征服面試官,拿到Offer面試
- 《金三銀四面試系列》—面試必問Spring面試Spring
- 分享我的優質面經,螞蟻金服社招三面面經分享,已拿offer
- 2020金三銀四,面試求生指南面試
- 金三銀四:螞蟻金服JAVA開發面試題及答案之一面(持續更新)Java面試題
- 《金三銀四面試系列》— jvm與效能優化面試JVM優化
- 常見面試題整理,金三銀四全靠它了面試題
- 攜程Java三面面經,已OC!!Java
- Java開發:錯過金三銀四 你還要錯過金九銀十嗎?面試大綱總結Java面試
- 金三銀四,你的面試利器:一站式資源導航面試
- 金三銀四求職季,面試阿里Java崗你必須知道些什麼!求職面試阿里Java
- SpringMVC 常見面試真題分享,助力金三銀四後半段衝刺!SpringMVC面試
- Java高階程式設計師面試大綱——備戰金三銀四跳槽季Java程式設計師面試
- 1、List 和 Set 、Map的區別-金三銀四跳槽季Java面試大綱(答案篇)Java面試
- 金三銀四面試季來臨,最新BAT面試資料分享給你面試BAT
- 金三銀四面試季—20道精選JVM重點面試問題!面試JVM
- 金九銀十跳槽季,JAVA兩年經驗樂信面經分享。已拿offerJava
- 金三銀四跳槽季,這些面試題你都會了嗎?面試題
- 金三銀四:面試官如何篩選簡歷、挑選求職者?面試求職
- 2018金三銀四,Android大廠面試題整理Android面試題
- 金九銀十最新的美團技術四面已拿熱乎乎的offer,分享面經總結
- 面試官一道題就把你刷下?21道大廠高階面試題,助力金三銀四!面試題
- 開箱即用的JS乾貨助力金三銀四JS
- 金三銀四助力面試-手把手輕鬆讀懂HashMap原始碼面試HashMap原始碼
- 金三銀四銅五鐵六,現在看看面試題還不晚(上篇)面試題
- 金三銀四,Java程式設計師,你想進BAT該學什麼?末尾贈海量面試題!Java程式設計師BAT面試題
- 金三銀四魔都兩年半前端面經前端
- 一次C#面試,最後被我弄得又像OracleDBA面試了 =_="'C#面試Oracle
- “金三銀四” 是找工作的最佳時期嗎?
- 備戰金三銀四!一線網際網路公司java崗面試題整理:Java基礎+多執行緒+集合+JVM合集!Java面試題執行緒JVM
- Java程式設計師金三銀四求職季,這些多執行緒面試題你會嗎?Java程式設計師求職執行緒面試題
- 敲黑板,做筆記!金三銀四時去面試,這幾個重要的面試題千萬別忘記!筆記面試題
- 2019 PHP 初級 / 基礎面試題,祝你金三銀四跳槽加薪PHP面試題