10.19 百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

今天申請了離職,週四正式離職。突然不想學習了,也不想搬磚了,那就分享下最近面的幾家公司的面經吧。

本人非科班,兩段校企合作項目,兩段實習經歷。所以面試基本上都是項目為主,然後再問問基礎知識。大部分問題都是根據項目擴展出來的,不具備參考性。而且很多都是現場或者連續面,所以只記錄了還記得的問題,僅供大家參考。

一、滴滴 【sp專場】

百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

一面:

  • 1、網絡協議:A往B發一個消息:從五層網絡架構分析下這個過程;
  • 2、TCP 能有多少個連接,TCP 三次握手;
  • 3、vachar 字段非常大,數據庫怎麼進行優化存儲
  • 4、數據庫的架構
  • 5、數據庫事務的隔離級別
  • 6、項目:多線程併發查詢、分佈式事務怎麼實現的、自己做的事情、難點

二面:

  • 1、自我介紹 + 項目
  • 2、類加載器有哪些?
  • 3、怎麼實現自定義類加載器?需要注意什麼事項?
  • 4、Java 內存數據區
  • 5、public static final 分配在哪
  • 6、垃圾回收策略
  • 7、CSM 和 G1
  • 8、UDP 和 TCP 的區別
  • 9、HTTP 的過程:輸入一個地址訪問後的過程
  • 10、HTTPS 的過程、服務端偽造怎麼處理,怎麼知道是不是真正的服務端?CA證書行不行?
  • 11、鎖:悲觀鎖和樂觀鎖:有什麼區別
  • 12、設計模式:寬泛的說了下知道哪些
  • 13、實現多線程的幾種方式
  • 14、怎麼實現固定大小數目的線程池?
  • 15、線程池的7個參數、飽和策略
  • 16、HashMap、HashTable、ConcurrentHashMap 的區別
  • 17、怎麼實現動態代理?
  • 18、Java 中序列化是什麼?描述下一臺機器將一個對象插入數據庫,另一臺機器讀這條數據,這個過程中用到的序列化和反序列化的API
  • 19、Java 中的 IO 流:簡單介紹了字節流和字符流
  • 20、父線程怎麼收集子線程的信息
  • 21、ThreadLocal

寫代碼:

Java最快的方式讀寫文件:快速的讀取一個文件中的內容,再輸出到另外一個文件

擴展:

設計一個高併發、大數據量的系統,會從哪幾個方面入手

二、蝦皮 【sp 專場】

  • 1、算法題:說思路 --> 怎麼找到一個數組中的最小值?
  • 2、手寫算法題:兩個為 String 類型的數組相加?
  • 3、HTTP 簡單說下:說了方法、狀態碼
  • 4、HTTPS 加密的過程,對稱加密和非對稱加密
  • 5、TCP 有什麼特點
  • 6、操作系統內存管理
  • 7、進程和線程的區別 各有什麼優點?
  • 8、Java 中的 ConcurrentHashMap 的實現?
  • 9、加鎖會有什麼問題?--> 死鎖 怎麼解決死鎖? --> 順序性
  • 10、volatile 的實現,有什麼作用?內存屏障怎麼實現的?讀內存屏障和寫內存屏障有什麼區別?
  • 11、數據庫的索引有什麼用?怎麼實現的?
  • 12、數據庫的事務,分別問了髒讀、幻讀、不可重讀對應的場景
  • 13、聯合索引有什麼特點

二面:

  • 1、自我介紹
  • 2、項目:做了什麼
  • 3、volatile 怎麼實現內存可見?為什麼沒有volatile就不可見,操作系統層面是怎麼實現的?
  • 4、HTTPS和HTTP的區別、HTTPS的加密過程,加密算法
  • 5、邏輯題:100個蘋果分到7個籃子裡,隨便輸入一個數(1-100)都可以是若干個籃子中蘋果的數量和【貪心算法】
  • 可能是邏輯題說的不好,面試官開始閒扯。
  • 6、老師和同學對你的評價?優缺點?
  • 7、對蝦皮的認識
  • 8、對未來公司的定位
百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

一面:

  • 1、自我介紹
  • 2、懟項目:問項目細節、項目擴展:redis 、kafka
  • 3、線程與進程
  • 4、HTTPS 的流程、加密算法
  • 5、主線程怎麼收集子線程執行的結果
  • 6、手寫代碼:二叉樹的序列化和反序列化

二面:

  • 1、自我介紹
  • 2、項目介紹、可靠消息實習分佈式事務
  • 3、垃圾回收:運行時數據區、垃圾回收算法、垃圾回收策略
  • 4、手寫代碼:二分查找、KMP
  • 5、線程池參數、線程數的設置
  • 6、HashMap的擴容過程
  • 7、ConcurrentHashMap 的實現原理

三面:

  • 1、自我介紹
  • 2、各階段項目描述+項目擴展問題
  • 3、最有成就感的一個項目,為什麼?
  • 4、瀏覽器實現 url 提示的數據結構
  • 5、Trie 樹和二叉樹的區別
  • 6、TCP 和 UDP 的區別
  • 7、TCP 怎麼保證可靠傳輸
  • 8、後面進入HR模式,各種優缺點、未來選擇問題

四、字節面試

百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

一面:

  • 1、進程與線程的區別?進程更耗費資源,具體指的是哪些資源?
  • 2、有哪些情況下可能發生死鎖?
  • 3、線程間通信方式?進程間通信方式?
  • 4、手寫代碼:連續子數組最大和問題(邊界問題:大數,結果使用 double)
  • 5、說一下對 HTTP 協議的理解
  • 6、懟項目

二面:

  • 1、UDP 和 TCP 的區別
  • 2、數組建堆的過程
  • 3、手寫代碼:二叉樹的層序遍歷,每一行對應一層(記錄當前層和下一層的節點數量)
  • 4、MQ 和 Redis:Kafak RabbitMQ 寬泛的自己講一講,在什麼場景下會使用到
  • 5、垃圾回收:自己講 、類加載
  • 6、懟項目
  • 7、自己怎麼實現一個 HashMap
  • 8、三次握手、四次揮手(為什麼需要四次:雙工)

三面:

  • 1、重載和重寫的區別
  • 2、數組和鏈表的區別
  • 3、HTTP 的狀態碼,304具體是什麼錯誤( https://blog.csdn.net/huwei2003/article/details/70139062)
  • 4、手寫代碼:單例模式(雙重校驗鎖+靜態內部類)
  • 5、項目:分佈式事務,可靠消息
  • 6、Linux 的命令 lsof( 列出當前系統打開文件的工具)、問了一堆不會的指令
  • 7、目前 offer 情況
  • 8、自己的優缺點

更多高級Java必考題與答案

百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

百度+字節+滴滴+蝦皮Java後端開發面題全分享(送答案)

答案獲取方式

關注+轉發後,私信關鍵詞 【面試】即可獲得詳細答案鏈接!

重要的話講兩遍,轉發、轉發後再發私信,才可以拿到哦!


分享到:


相關文章: