2020阿里,字節跳動,JAVA崗(一線企業校招、社招)面試題合集

前言

如下面試題全屬於一線大廠社招以及校招的面試真題,各位在作這些題目對照本身的時候請平凡心對待,不要信心受挫。其實 作爲致力於一線企業校招或者社招的你來講,能把每一個知識模塊的一小部分問題去深刻學習和總結,已經很棒了!而後文末有我本身總結的一些答案和更多面試題的文檔總結,須要能夠自取!
首先展現一下如下文檔包含的路線圖
面試

基礎

  • 排序實現原理和Collection實現原理
  • 和而的區別(編譯以後)
  • 線程池的種類,區別和使用場景
  • 分析線程池的實現原理和線程的調度過程
  • 線程池如何調優
  • 線程池的最大線程數目根據什麼肯定
  • 動態代理的幾種方式
  • HashMap的併發問題
  • 瞭解LinkedHashMap的應用嗎
  • 反射的原理,反射建立類實例的三種方式是什麼?
  • 可克隆接口實現原理,淺拷貝或深拷貝
  • JavaNIO使用
  • 哈希表和hashmap的區別及實現原理,hashmap會問到數組索引,散列碰撞怎麼解決
  • 數組列表和連接列表區別及實現原理
  • 反射中,Class.forName和ClassLoader區別
  • 字符串、字符串緩衝區、StringBuilder的區別?
  • 有沒有可能2個不相等的對象有相同的哈希碼
  • 簡述nio的最佳實踐,好比netty,Mina
  • 樹狀圖的實現原理

Jvm相關

  • 類的實例化順序,好比父類靜態數據,構造函數,字段,子類靜態數據,構造函數,字段,他們的執行順序
  • Jvm內存分代
  • JAVA 8的內存分代改進
  • JVM垃圾回收機制,什麼時候觸發MinorGC等操做
  • JVM中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講對象如何晉升到老年代,幾種主要的jvm參數等
  • 你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms,G1
  • 新生代和老生代的內存回收策略
  • 伊甸園和倖存者的比例分配等
  • 深刻分析了類加載器,雙親委派機制
  • Jvm的編譯優化
  • 對內存模型的理解,以及其在併發中的應用
  • 指令重排序,內存柵欄等
  • Oom錯誤,堆棧溢出錯誤,permgen空間錯誤
  • Jvm經常使用參數
  • Tomcat結構,類加載器流程
  • 揮發性的語義,它修飾的變量必定線程安全嗎
  • G1和cms區別,吞吐量優先和響應優先的垃圾收集器選擇
  • 說一說你對環境變量類路徑的理解?若是一個類不在類路徑下,爲何會拋出ClassNotFoundException異常,若是在不改變這個類路徑的前期下,怎樣才能正確加載這個類?
  • 說一下強引用、軟引用、弱引用、虛引用以及他們之間和GC的關係
注意:因爲面試題內容較多,在文章中我基本上簡述了,文章裏的面試題完整版以及答案和我我的的總結方法經驗(面試學習和刷題筆記),都整理有PDF完整版,有須要的關注個人公衆號: 前程有光便可獲取

JEC/併發相關

  • 線程本地用過麼,原理是什麼,用的時候要注意什麼
  • 同步和鎖的區別
  • 同步的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖
  • Concurrenthashmap具體實現及其原理,jdk 8下的改版
  • 用過哪些原子類,他們的參數以及原理是什麼
  • 是什麼,他會產生什麼問題(ABA問題的解決,如加入修改次數、版本號)
  • 若是讓你實現一個併發安全的鏈表,你會怎麼作
  • 簡述ConcurrentLinkedQueue和LinkedBlockingQueue的用處和不一樣之處
  • 簡述AQS的實現原理
  • 和環屏障的用法,以及相互之間的差異?
  • 併發包中使用過哪些類?分別說說使用在什麼場景?爲何要使用?
  • 洛克蘇波特工具
  • 條件接口及其實現原理
  • 叉/加入框架的理解
  • Jdk 8的並行流的理解
  • 分段鎖的原理,鎖力度減少的思考

分佈式相關

  • 杜博的底層實現原理和機制
  • 描述一個服務從發佈到被消費的詳細過程
  • 分佈式系統怎麼作服務治理
  • 接口的冪等性的概念
  • 消息中間件如何解決消息丟失問題
  • 杜博的服務請求失敗怎麼處理
  • 重連機制會不會形成錯誤
  • 對分佈式事務的理解
  • 如何實現負載均衡,有哪些算法能夠實現?
  • 動物園管理員的用途,選舉的原理是什麼?
  • 數據的垂直拆分水平拆分.
  • 動物園管理員原理和適用場景
  • 動物園管理員觀看機制
  • Redis/ZK節點宕機如何處理
  • 分佈式集羣下如何作到惟一序列號
  • 如何作一個分佈式鎖
  • 用過哪些MQ,怎麼用的,和其餘MQ比較有什麼優缺點,MQ的鏈接是線程安全的嗎
  • MQ系統的數據如何保證不丟失
  • 列舉出你能想到的數據庫分庫分表策略;分庫分表後,如何解決全表查詢的問題.

算法&數據結構&設計模式

  • 海量url去重類問題(布隆過濾器)
  • 數組和鏈表數據結構描述,各自的時間複雜度
  • 二叉樹遍歷
  • 快速排序
  • B樹相關的操做
  • 在工做中遇到過哪些設計模式,是如何應用的
  • 散列算法的有哪幾種,優缺點,使用場景
  • 什麼是一致性散列
  • 帕克斯算法
  • 在裝飾器模式和代理模式之間,你如何抉擇,請結合自身實際狀況聊聊
  • 代碼重構的步驟和緣由,若是理解重構到模式?

Redis&緩存相關

  • 紅星(redis的併發競爭問題如何解決了解redis事務的操做嗎)
  • 緩存機器增刪如何對系統影響最小,一致性哈希的實現
  • 紅系持久化的幾種方式,優缺點是什麼,怎麼實現的
  • 紅系的緩存失效策略
  • 緩存穿透的解決辦法
  • 紅系集羣,高可用,原理
  • Mysql裏有2000 w數據,redis中只存20 w的數據,如何保證redis中的數據都是熱點數據
  • 用Redis和任意語言實現一段惡意登陸保護的代碼,限制1小時內每用戶ID最多隻能登陸5次
  • 紅系的數據淘汰策略

網絡相關

  • Http1.0和HTTP1.1有什麼區別
  • TCP/IP協議
  • Tcp三次握手和四次揮手的流程,爲何斷開鏈接要4次,若是握手只有兩次,會出現什麼
  • 時間等待和關閉等待的區別
  • 說說你知道的幾種HTTP響應碼
  • 當你用瀏覽器打開一個連接的時候,計算機作了哪些工做步驟
  • TCP/IP如何保證可靠性,數據包有哪些數據組成
  • 長鏈接與短鏈接
  • Http請求Get和POST的區別以及數據包格式
  • 簡述tcp創建鏈接3次握手,和斷開鏈接4次握手的過程;關閉鏈接時,出現TIMEWAIT過可能是由什麼緣由引發,是出如今主動斷開方仍是被動斷開方.

其餘

  • Maven解決依賴衝突,快照版和發行版的區別
  • Linux下IO模型有幾種,各自的含義是什麼
  • 實際場景問題,海量登陸日誌如何排序和處理sql操做,主要是索引和聚合函數的應用
  • 實際場景問題解決,典型的頂K問題
  • 線上bug處理流程
  • 如何從線上日誌發現問題
  • Linux利用哪些命令,查找哪裏出了問題(例如io密集任務,cpu過分)
  • 場景問題,有一個第三方接口,有不少個線程去調用獲取數據,如今規定每秒鐘最多有10個線程同時調用它,如何作到.
  • 用三個線程按順序循環打印abc三個字母,好比abc abc.
  • 常見的緩存策略有哪些,大家項目中用到了什麼緩存系統,如何設計的
  • 設計一個秒殺系統,30分鐘沒付款就自動關閉交易(併發會很高)
  • 請列出你所瞭解的性能測試工具
  • 後臺系統怎麼防止請求重複提交?
  • 有多個相同的接口,我想客戶端同時請求,而後只須要在第一個請求返回結果的時候返回給客戶端
這份面試題固然不止展現的這些內容,實際上像Spring Cloud、設計模式、Netty、Dubbo、數據結構等其餘部分的面試內容均有涉及,由於文章篇幅,就不所有在這裏闡述了,須要的小夥伴能夠關注個人公衆號: 前程有光便可獲取,如下是這份面試題的一些展現.



最後

此份面試題總結一共317頁,包含了面試可能問到的全部核心知識點以及答案,若是你能把這份面試題吃透,絕不客氣的說你去阿里面試至少也是個P7崗,最後須要這份面試題的朋友關注個人公衆號:前程有光便可所有獲取!redis

相關文章
相關標籤/搜索