前言:
金九銀十已經過去了,很多朋友也基本都收到了大廠offer,今天爲大家整理下目前大廠問到的面試題,也希望大家都能夠收穫心儀的offer!
螞蟻金服篇:
HashMap的數據結構——引出Java7跟Java8的區別
在什麼情況下會做一個鏈表到紅黑樹的轉換
除了數據結構之外,Java8跟Java7在HashMap上還有什麼不同
擴容的過程,在什麼情況下會擴容
擴容機制中的capacity初始值爲什麼是16,可不可以自定義成15,爲什麼一定要是2的指數次方
簡單介紹一下hash算法,它的核心性能,或者說判斷一個hash算法好壞的指標是什麼,indexFor()函數的實現
HashMap爲了解決什麼問題?——引出哈希碰撞
介紹ConcurrentHashMap的數據結構
ConcurrentHashMap可以支持多少併發線程
ConcurrentHashMap屬於JOC下的一個類,對JOC這個包的瞭解
是否用過synchronized,之前是否碰到過併發問題,怎麼處理
在Java技術棧方面,有沒有比較擅長或者深入瞭解的點,是否從源碼上看過一些東西Netty原理介紹下。
瞭解過NIO,BIO,AIO麼?介紹下異同,代碼中如何使用?
分佈式鎖用過麼?用什麼函數?什麼使用場景?
能介紹下垃圾回收機制麼?
redis的數據結構介紹下。項目中用過哪些?什麼場景
冪等性是什麼?如何保障?
交易系統中的數據一致性咋保障?
數據庫
對MySQL瞭解多少——引出必問知識點(劃重點!!!事務和索引)
MySQL用的隔離級別是什麼,這個隔離級別下會出現什麼問題——引出數據庫的併發問題
MySQL使用這種隔離級別時,是如何解決幻讀問題的(引申,理解其他併發問題的解決原理)
MySQL的調優機制,主要是哪些方面的調優——引出索引
在MySQL的InnoDB這個存儲引擎下,聚集索引(或者聚簇索引)和非聚集索引這兩個概念
MySQL中的索引是用什麼數據結構存儲的——此處應該引出B+樹
爲什麼通過索引查詢速度會更快一些——此處應該引出二叉樹算法
二輪:
自我介紹
項目中的mongoDB使用場景是啥?如何部署的?怎麼保證高可用性?
JVM的內存結構能介紹下麼?
CMS和G1的優缺點?什麼時候發生FULL GC?什麼時候stop the world!
什麼樣的對象能當根節點?
一個類,兩個函數,一讀一寫,寫函數加synchronized,讀函數還用加麼?voliate關鍵字啥作用?
數據庫設計時,主鍵咋設?自增好還是非自增好?爲啥?
mysql的鎖類型介紹下
線上CPU 100%了怎麼查?
寫個算法,給一個數字,一個單調數組中,方法返回數組中第一個大於給定數字的下標,如果沒有,返回-1。
三輪:
第三輪就是比較深度的問題了,都是結合業務談談自己的程序思想,如果沒有一定的技術和開發經驗這個是回答不完整的
如何實現一個高效的單向鏈表逆序輸出?
已知sqrt(2)約等於1.414,要求不用數學庫,求sqrt(2)精確到小數點後10位
給定一個二叉搜索樹(BST),找到樹中第 K 小的節點
LRU緩存機制
關於epoll和select的區別,以下哪些說法是正確的
從innodb的索引結構分析,爲什麼索引的 key 長度不能太長
給定一個鏈表,刪除鏈表的倒數第N個節點,並且返回鏈表的頭結點
如果讓你設計一個通用的、支持各種數據庫秒級備份和恢復的系統,你會如何設計
如果讓你來設計一個支持數據庫、NOSQL 和大數據之間數據實時流動的數據流及處理的系統,你會考慮哪些問題?如何設計?
給定一個整數數組和一個整數,返回兩個數組的索引,這兩個索引指向的數字的加和等於指定的整數。需要最優的算法,分析算法的空間和時間複雜度
假如給你一個新產品,你將從哪些方面來保障它的質量?
請評估一下程序的執行結果?
美團篇:
什麼情況下會發生棧內存溢出。
JVM的內存結構,Eden和Survivor比例。
JVM內存爲什麼要分成新生代,老年代,持久代。新生代中爲什麼要分爲Eden和Survivor。
JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代,說說你知道的幾種主要的JVM參數。
你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。
垃圾回收算法的實現原理。
當出現了內存溢出,你怎麼排錯。
簡單說說你瞭解的類加載器,可以打破雙親委派麼,怎麼打破。
g1和cms區別,吞吐量優先和響應優先的垃圾收集器選擇。
怎麼打出線程棧信息。
簡單講講tomcat結構,以及其類加載器流程,線程模型等。
tomcat如何調優,涉及哪些參數 。
講講Spring加載流程。
Spring AOP的實現原理。
講講Spring事務的傳播屬性。
Spring如何管理事務的。
說說你對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工作的。
Springmvc 中DispatcherServlet初始化過程。
netty的線程模型,netty如何基於reactor模型上實現的。
netty的通訊協議是什麼樣的。
springmvc用到的註解,作用是什麼,原理。
springboot啓動機制
京東篇:
自我介紹以及項目介紹
spring-cloud是否瞭解,spring-boot是瞭解,講一講bean的生命週期
hashmap-1.8後的改進,hashmap爲什麼是線程不安全的
如何做到線程安全,concurrenthashmap是怎麼實現的
用到哪些的設計模式
ThreadLocal用過嗎
類的加載機制
JVM-內存模型
垃圾回收
redis源碼有讀過嗎
介紹你做的項目和其中的難點?
反射的作用是什麼?
數據倉庫,多線程和併發工具等?
私有云,docker和k8s等?
瞭解哪些中間件,dubbo,rocketmq,mycat等?
dubbo中的rpc如何實現?
自己實現rpc應該怎麼做?
dubbo的服務註冊與發現?
給你一個有序整數數組,數組中的數可以是正數、負數、零,請實現一個函數,這個函數返回一個整數:返回這個數組所有數的平方值中有多少種不同的取值。
寫在最後:
互聯網大廠比較喜歡的人才特點:
對技術有熱情,強硬的技術基礎實力;主動,善於團隊協作,善於總結思考。
無論是哪家公司,都很重視高併發高可用技術,重視基礎,所以千萬別小看任何知識。這裏博主爲大家整理總結了面試資料
互聯網大廠面試資料整理領取方式:戳這裏免費領取,暗號:簡書
數據結構與算法筆記
動態規劃設計
數據結構系列
算法思維繫列
高頻面試題系列
計算機技術
快速入手通道:(點這裏)下載!誠意滿滿!!!
Java面試精選題、架構實戰文檔傳送門:https://docs.qq.com/doc/DRW1nUkdhZG5zeGVi
整理不易,覺得有幫助的朋友可以幫忙點贊分享支持一下小編~
你的支持,我的動力;祝各位前程似錦,offer不斷!!!