前言
“找工作 3 個多月了,還沒有遇到合適的,座標杭州。”“座標北京,2 年工作經驗,裸辭 1 個月了,Java/Python 方向都在找,投的簡歷都石沉大海了。”“金三銀四找的全是 996 的,雙休只有外企和非互聯網行業。”“去年冬天被裁員的,今年到現在還沒找著像樣的工作。”“投了半個多月簡歷,一個面試機會都沒有,送達,已讀。”
在過去得2019裡,這是我在互聯網裡聽過最多的說辭,對於程序員找工作,行情似乎並不那麼樂觀,在這群人中,,不乏多年工作經驗的資深程序員,也有入行不久的新人程序員。今年的2020年開端,也並不完美,疫情之下,金三銀四也將受到影響,那麼今年的金三銀四春招,“遠程面試”將會成為今年面試季的關鍵詞,那麼我們又該何去何從?如何通過遠程面試來拿下心儀的offer 呢?——提前做好準備。
借鑑經驗和刷題是面試大廠必不可少的一道步驟,以下分享大廠面試經驗與整理出來的Java核心知識寶典,大廠分別是阿里、字節跳動和美團,希望能夠給你們帶來一些幫助。
另外,由於文章篇幅有限,大廠面試題的答案及詳解,私信我【面試】即可獲取~
阿里面試經驗分享(電話面)
一面(電話,61 分 47 秒)
- 自我介紹
- 項目來歷
- MySQL 和 MongoDB 的區別
- 負載均衡的實現,有沒有使用過nginx?
- 為什麼數據庫使用索引查詢速度會那麼快,是怎樣實現的?
- 除了mysql這種關係型數據庫外,還有哪些數據庫?
- TCP和UDP的區別?
- 一次HTTP的完整請求過程(從網絡協議的層面來闡述)?
- 面嚮對象語言的特點?
- hashmap和hashtable的區別?
- JVM的內存模型,回收機制
- 老闆有 2000 元給我和同學分錢,首先由我提出分錢方案。如果同學不同意,則總額變為 1000 元,並由同學提出分錢方案。如果這時我不同意,則倆人各拿 100 元。請問一開始我應該怎麼給出分錢方案?
- 假設有一個線程在取隊列中的消息,怎麼停止這個線程?
- 讀過哪些源碼?
- 項目中遇到過什麼難題
- 印象深刻的幾次學習經歷
- 有什麼問題想問的?
二面(電話,82 分 33 秒)
- springboot或者spring的加載流程
- 對IOC和AOP的理解
- jdk和cglib實現的AOP實際上會在內存生成動態代理對象,還有什麼其他辦法實現AOP?經提示答出AspectJ以及實現原理
- Spring中的對象的作用域
- Singleton對象引用Prototype會發生什麼
- 項目中怎樣使用微服務?
- 兩個服務之間調用的流程
- rpc與http的區別
- 設計rpc協議需要注意什麼
- 項目中如何使用kafka
- 消息隊列的使用場景
- kafka如何保證消息投遞的可靠性
- 聊聊jvm,內存分佈,垃圾回收
- 創建類的流程,類加載流程
- 瞭解我做過的項目的複雜度
三面(電話,30 分 57 秒)
- 問項目,根據項目問問題
- 用過數據庫索引嗎?介紹如何使用,何時使用?
- B樹、B+樹、紅黑樹數據庫分頁查詢,如何分頁,怎麼實現?
- 四種隔離級別,虛讀和幻讀什麼意思發生在哪?
- 使用的MySQL版本,和之前版本的區別?
- 1.7和1.8的JVM有哪些不同?
- 垃圾回收算法,CMS垃圾回收器簡單介紹
- ConcurrentHashMap的size()函數1.7和1.8的不同,或者介紹一下如果是你如何設計?
- 排序算法,介紹一下快速排序,快速排序時間複雜度,是不是穩定排序,介紹幾種你所知道的穩定排序算法
- UDP,TCP,HTTP介紹一下,OSI七層模型
- Redis支持的數據結構
HR面(電話,14 分 47 秒)
- 為什麼來阿里?
- 有什麼優勢能讓你來我們部門?
- 業餘有什麼愛好?
- 解決難題的經歷?
- 遇到過什麼挫折?
- 選擇上海還是杭州?
字節跳動面試經驗(一面電話面,二面視頻面,三面、HR面現場面)
字節跳動一面(電話面,40 分 34 秒)
- 自我介紹
- 手寫代碼:有序鏈表合併
- 聊聊項目 怎麼個秒殺法
- 計算過qps嗎 qps是什麼
- 場景題:設計表結構 怎麼實現用戶量大的情況下快速查詢用戶的粉絲數/關注數?
- 聊聊IOC
- IOC加載過程
- wait和sleep的區別
- synchronized底層原理 是可重入鎖嗎?
- CAS原理
- 怎麼解決ABA問題?
- HashMap數據結構 線程安全嗎?
- 舉個例子HashMap怎麼線程不安全?
- 聊聊B樹和B+樹 數據結構是什麼 查詢複雜度是多少?
字節跳動二面(視頻面,37 分 46 秒)
- 場景1:硬盤1T,內存2G 有很多數據id, 有重複的id 怎麼找到重複次數最多的Top10
- 場景2:網頁中有一個用戶輸入框,輸入完文本後會拿到一個url,然後關閉頁面。
用戶下次再進入頁面時根據上次的url可以看到上次輸入的文本 怎麼實現這個功能,把你能想到的說出來 - 數據庫索引怎麼建立,把你的認識說出來,後來我引到了聚簇索引,索引覆蓋
- 解釋什麼是索引覆蓋?
- 數據庫隔離級別有哪些?
- 舉個不可重複讀的例子
- 除了設置數據庫隔離級別,還有什麼方法可以解決不可重複讀 ?(後面提示說這個有個專有的名詞)
- 講講滑動窗口的過程 滑動窗口在哪裡用到?
- 手寫代碼:有序鏈表合併的升級版,合併n多和有序鏈表,並計算時間複雜度
字節跳動三面(現場面,53分21秒)
- 你如何理解後端開發
- 有哪些後端開發經驗,做了什麼?
- 介紹HashMap ,與TreeMap區別
- 用HashMap實現一個有過期功能的緩存,怎麼實現?
- 如果需要多個線程,那怎麼保證線程安全?
- 如果把數據都放進Map ,會佔用多大內存?
- 平時怎麼學習新知識?
- 最近看了什麼書?
- 對於你的商城項目,如果對於同一個分類有多個賣家,如何設計數據表?
- 對於高併發的系統,如何設計架構才能避免瞬間數據庫收到瞬間高流量的衝擊?
- 如果你用Redis實現的話,可能會出現商品超賣的問題,那麼你是如何結果商品超賣問題的?
- 一般在支付的過程中,用戶支付、賬戶被凍結、訂單的生成、賣家庫存減少、賣家收到錢,這是個一系列的過程,那麼你如何設計實現分佈式的事務?
- 如果用戶在提交訂單之後向消息隊列發送消息,這個時候網絡出現異常,消息隊列並沒有接收到用戶發送的消息怎麼辦?
- 問GitHub賬號
- 兩個雞蛋問題,如果有100層樓,如何判斷出恰好在第幾層樓摔壞?
字節跳動HR面(現場面,21分鐘48秒)
- 為什麼來頭條
- 作為項目負責人,完成了哪些工作
- 實習時長、什麼時候來
美團點評面試經驗分享(非常乾脆,3面直接順利通過)
美團一面(電話面,45分鐘37秒)
- 介紹項目
- 分佈式鎖的實現
- 分佈式鎖過期解決
- 前綴樹是什麼 前綴樹的使用場景
- 分佈式數據庫主從複製
- MySQL 死鎖發生的原因和解決
- MySQL 分別建立索引 a,b,c ,語句 select ...where b=x,c=x,a=x 能不能用到索引,建立聯合索引能不能用到,a=x,b>x,能不能用到,用到幾個索引?
- B 樹和 b+ 樹的區別 b+ 樹的優點
- Linux cpu 滿了怎麼排查?
- 怎麼查看佔 cpu 最多的線程
- Linux怎麼搜索文件中的字符串,寫到另一個文件中
- liunx 網絡相關命令
- 如何判斷鏈表是否有環
- Java = 和 equals的區別
- Java contentMap 和 HashMap 什麼區別,線程安全怎麼實現
- HashMap 怎麼解決哈希衝突,哈希衝突還有什麼解決方法
- Java 運行時異常和檢查性異常
- Java 類加載
- 什麼是泛型 泛型的使用場景
- 面向過程和麵向對象
- 多態是什麼 父類如何調用子類的方法
- 問我看了啥書(設計模式,圖解HTTP,Modern PHP...被打斷然後開始問設計模式)
- 單例模式的用途 靜態內部類實現單例模式的方式
- 工廠模式的用途
- 策略模式的用途
- Get 和 post請求的區別
- 網頁請求的整個過程
- 說說自己的優缺點,對缺點的改進?
美團二面(現場面,57分鐘)
- 上來先寫代碼,兩個線程交替輸出1-100
- JAVA鎖機制(synchronize,ReentrantLock等)
- 樂觀悲觀鎖
- sql語句慢查詢如何調優
- 主鍵索引和普通索引區別
- 項目用的什麼數據庫,什麼引擎,底層是什麼
- 說一下B+樹和B樹
- B+樹索引都能查到葉子節點麼
- mvcc多版本併發控制
- 隔離級別瞭解麼,說一下
- JVM調過麼,用的什麼垃圾回收器(G1)
- 講一下新生代老年代(這裡給我挖了個坑,等我說完,告我G1不分新生代老年代,我還沒學到啊可惜)
- TCP,UDP區別
- 輸入URL會發生什麼?
- Linux常用操作
- 線程進程區別
- 用過什麼中間件或者消息隊列麼?
- 有什麼問題想問我?
美團HR面
- 自我介紹,抓住介紹的點讓你詳細說說
- 其他的面試流程?
- 考慮去哪裡工作,北京是唯一選擇嗎?
- 為什麼來美團,從哪裡知道美團技術團隊?
Java面試寶典(歷年來的大廠面試必問核心知識點)
這份Java面試寶典整理了歷年來大廠面試必問的核心知識點,從基礎的到進階的,讓你從小白成長到架構師,面試寶典內容覆蓋了JVM、鎖、併發、Java反射、Spring原理、微服務、Zookeeper、數據庫、數據結構等部分,看完讓你受益匪淺!
這份寶典包括了五個大部分,26個知識點:
寶典目錄:
寫在最後
我相信,一切都會好起來。
最後祝願大家身體健康,面試順利!
文章內的面試題和答案及Java面試寶典,需要的朋友幫忙轉發一下文章,然後關注我後臺私信【面試】即可免費領取啦~~!
閱讀更多 Java架構師阿谷 的文章