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

java識堂 發佈 2020-01-17T18:01:49+00:00

前言現在已經是2020年了,相信很多人都在準備面試,,如何拿到心儀的 Offer,進入夢寐以求的大廠,實現自己的職業理想,達到程式設計師的小康水平。這篇文章主要介紹了劉哥一月份的幾次面經,(一次性查缺補漏個夠),!(感謝劉哥的內容提供)對於面試的那幾家公司暫不公布,望理解。

前言

現在已經是2020年了,相信很多人都在準備面試,,如何拿到心儀的 Offer,進入夢寐以求的大廠,實現自己的職業理想,達到程式設計師的小康水平。

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

對於面試的那幾家公司暫不公布,望理解。


第一家(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輪面試
  • 你怎麼看待你自己,你最大的核心競爭力是什麼
  • 未來自己的職業規劃
  • 對阿里技術氛圍有什麼樣的理解,用過哪些阿里的開源庫
  • 期望的薪資是多少
  • 最後,你有什麼想了解的



作者:豆汁

連結:https://juejin.im/post/5e200e676fb9a02fc6360ac1

關鍵字: