2020年1月的最新的Java面試經歷整理(一次性查缺補漏個夠)

前言

如今已是2020年了,相信不少人都在準備面試,,如何拿到心儀的 Offer,進入求之不得的大廠,實現本身的職業理想,達到程序員的小康水平。java

這篇文章主要介紹了劉哥一月份的幾回面經,(一次性查缺補漏個夠),!(感謝劉哥的內容提供)mysql

對於面試的那幾家公司暫不公佈,望理解。 程序員

第一家(Zookeeper+微服務+消息中間件+高併發架構設計)

一面

  • JVM數據存儲模型,新生代、年老代的構造?
  • java GC算法,何時會觸發minor gc,何時會觸發full gc?
  • GC 可達性分析中哪些算是GC ROOT?
  • 你熟悉的JVM調優參數,使用過哪些調優工具?
  • Java 有什麼鎖類型?
  • 描述下線程池的處理流程?
  • 類加載機制,一個類加載到虛擬機中一共有幾個步驟,這些步驟的順序哪些是固定的,哪些是不固定的,爲何不固定?
  • hashmap是線程不安全的,concurrenthashmap是線程安全的,怎麼實現的線程安全?
  • volatile關鍵字解決了什麼問題,實現原理是什麼?
  • 併發容器有哪些,併發容器和同步容器的區別

二面

  • 在工做中,SQL語句的優化和注意的事項
  • 哪些庫或者框架用到NIO
  • Spring 都有哪幾種注入方式,什麼狀況下用哪一種,ioc實現原理
  • 如何定位一個慢查詢,一個服務有多條SQL你怎麼快速定位
  • 彙集索引和非彙集索引知道嗎?什麼狀況用匯集索引什麼狀況用非彙集索引
  • Nosql引擎用的什麼存儲結構,關係型數據庫和NoSQL各自的優劣點是什麼,如何技術選型?
  • 微服務架構下,若是有一個訂單系統,一個庫存系統,怎麼保證事務?
  • 分佈式一致性協議raft,paxos 瞭解嗎
  • Zookeeper中的ZAB協議,選主算法

三面

  • 自我介紹
  • 參與的併發項目,從設計到部署,按照流程講一遍。
  • 項目相關你用過redis,用在什麼場景,怎麼使用的?
  • mysql同步機制原理,有哪幾種同步方法
  • 數據庫主從同步如何實現,事務如何實現
  • 談談你對SOA和微服務的理解,以及分佈式架構從應用層面涉及到的調整和挑戰。
  • 阿里系中間件metaQ及原理與現有的kafka有什麼異同
  • 在阿里有了解過什麼中間件嗎?實現原理?與其餘開源消息隊列有什麼特色?
  • 爲何選擇換公司?
  • 三年到五年的職業規劃?
  • 你有想問個人?

第二家(幻影讀+分段鎖+Spring Cloud+秒殺)

一面

  • 簡短自我介紹
  • 事務的ACID,其中把事務的隔離性詳細解釋一遍
  • 髒讀、幻影讀、不可重複讀
  • 紅黑樹、二叉樹的算法
  • 日常用到哪些集合類?ArrayList和LinkedList區別?HashMap內部數據結構?ConcurrentHashMap分段鎖?
  • jdk1.8中,對hashMap和concurrentHashMap作了哪些優化
  • 如何解決hash衝突的,以及若是衝突了,怎麼在hash表中找到目標值
  • synchronized 和 ReentranLock的區別?
  • ThreadLocal?應用場景?
  • Java GC機制?GC Roots有哪些?
  • MySQL行鎖是否會有死鎖的狀況?

二面

  • 樂觀鎖和悲觀鎖瞭解嗎?JDK中涉及到樂觀鎖和悲觀鎖的內容?
  • Nginx負載均衡策略?
  • Nginx和其餘負載均衡框架對比過嗎?
  • Redis是單線程?
  • Redis高併發快的緣由?
  • 如何利用Redis處理熱點數據
  • 談談Redis哨兵、複製、集羣
  • 工做中技術優化過哪些?JVM、MySQL、代碼等都談談

三面

  • Spring Cloud用到什麼東西?如何實現負載均衡?服務掛了註冊中心怎麼判斷?
  • 網絡編程nio和netty相關,netty的線程模型,零拷貝實現
  • 分佈式鎖的實現你知道的有哪些?具體詳細談一種實現方式
  • 高併發的應用場景,技術須要涉及到哪些?怎樣來架構設計?
  • 接着高併發的問題,談到了秒殺等的技術應用:kafka、redis、mycat等
  • 最後談談你參與過的項目,技術含量比較高的,相關的架構設計以及你負責哪些核心編碼

第三家

一面(50分鐘)

  • hashmap,怎麼擴容,怎麼處理數據衝突?怎麼高效率的實現數據遷移?
  • Linux的共享內存如何實現,大概說了一下。
  • socket網絡編程,說一下TCP的三次握手和四次揮手
  • 同步IO和異步IO的區別?
  • Java GC機制?GC Roots有哪些?
  • 紅黑樹講一下,五個特性,插入刪除操做,時間複雜度?
  • 快排的時間複雜度,最壞狀況呢,最好狀況呢,堆排序的時間複雜度呢,建堆的複雜度是多少

二面(40分鐘)

  • 自我介紹,主要講講作了什麼和擅長什麼
  • 設計模式瞭解哪些?
  • AtomicInteger怎麼實現原子修改的?
  • ConcurrentHashMap 在Java7和Java8中的區別?爲何Java8併發效率更好?什麼狀況下用- --
  • HashMap,什麼狀況用ConcurrentHashMap?
  • redis數據結構?
  • redis數據淘汰機制?

三面(約1個小時)

  • mysql實現事務的原理(MVCC)
  • MySQL數據主從同步是如何實現的?
  • MySQL索引的實現,innodb的索引,b+樹索引是怎麼實現的,爲何用b+樹作索引節點,一個節點存了多少數據,怎麼規定大小,與磁盤頁對應。
  • 若是Redis有1億個key,使用keys命令是否會影響線上服務?
  • Redis的持久化方式,aod和rdb,具體怎麼實現,追加日誌和備份文件,底層實現原理的話知道麼?
  • 遇到最大困難是什麼?怎麼克服?
  • 將來的規劃是什麼?
  • 你想問我什麼?

第四家 (事務+集羣+秒殺架構)

一面

  • 常見集合類的區別和適用場景
  • 併發容器瞭解哪些?
  • 如何判斷鏈表是否有環
  • concurrentHashMap如何實現
  • 集羣服務器 如何application 共享
  • JAVA網絡編程中:BIO、NIO、AIO的區別和聯繫
  • jvm內存模型jmm 知道的全講講
  • JAVA的垃圾回收,標記算法和複製算法的區別,用在什麼場合?
  • http和https的區別,http1.x和http2.0的區別,SSL和TSL之間的區別
  • GC、G1和ZGC的區別
  • B+樹和B樹的區別,和紅黑樹的區別
  • 內存泄漏與內存溢出的區別
  • session的生命週期是多久
  • 關於Mina框架了解多少?(由於我在項目裏用到了Mina,因此提到了這個部分)

二面

  • java cas原理
  • JAVA線程池有哪些參數,若是本身設計一個線程池要考慮哪些問題?
  • Java的lock的底層實現?
  • mysql數據庫默認存儲引擎,有什麼優勢
  • MySQL的事務隔離級別,分別解決什麼問題。
  • 四個表 記錄成績,每一個大約十萬條記錄,如何找到成績最好的同窗
  • 常見的負載均衡算法有哪些
  • 若是Redis有1億個key,使用keys命令是否會影響線上服務
  • Redis的持久化方式,aod和rdb,具體怎麼實現,追加日誌和備份文件,底層實現原理的話知道麼

三面

  • 請畫一個完整大型網站的分佈式服務器集羣部署圖
  • 多個RPC請求進來,服務器怎麼處理併發呢
  • 講一下Redis的哨兵機制
  • 數據庫分庫分表通常數據量多大才須要?
  • 如何保證數據庫與redis緩存一致的
  • 項目中消息隊列怎麼用的?使用哪些具體業務場景?
  • JVM相關的分析工具備使用過哪些?具體的性能調優步驟嗎?
  • MySQL的慢sql優化通常如何來作?除此外還有什麼方法優化?
  • 線上的服務器監控指標,你認爲哪些指標是最須要關注的?爲何?
  • 如何作壓測,抗壓手段
  • 秒殺模塊怎麼設計的

HR面

  • 自我介紹
  • 你怎麼評價你以前的3輪面試
  • 你怎麼看待你本身,你最大的核心競爭力是什麼
  • 將來本身的職業規劃
  • 對阿里技術氛圍有什麼樣的理解,用過哪些阿里的開源庫
  • 指望的薪資是多少
  • 最後,你有什麼想了解的

面試題答案

好了各位, 本文到這裏就結束了! 關於面試題答案爲何沒有直接寫出來,我想說的是把面試題寫下來會顯得文章很長,(如今已經很長了…)這樣就影響文章的可讀性。面試

如今整理好了 1000 道多家公司 java 面試題 400 多頁 pdf 文檔,都已經分專題整理好了。redis

還有幾百頁的Java核心知識點PDF。算法

歡迎你們關注公衆號領取,回覆:PDF便可,順便向你們討個贊,點個關注!嘿嘿sql


我是提莫 數據庫

一個節操氾濫,一身凜然正氣,剛正不阿的Java程序員 編程

相關文章
相關標籤/搜索