字節跳動三面面經
字節跳動一面面試題:
- 自我介紹
- 聊聊項目,時間大概15種左右,面試官會根據項目的一些設計點來提問,提前做好準備,別自己坑了自己
- 分佈式鎖是鎖住一部分還是整個系統,既然是鎖住整個,爲什麼不用消息隊列?
- 詳細講下怎麼用 mq 實現的最終一致性,還有怎麼利用的消息事務?
- tcp 於 http 的關係,如何基於 tcp 實現 http
- Java 打開一個 http 流不關閉的後果
- io 流是基於抽象類還是接口實現的
- 數據庫的樂觀鎖和悲觀鎖是什麼
- 樂觀鎖實現原理,講到一半,來寫一個樂觀鎖吧
- java 的類中有什麼方法
- 線程安全是什麼?
- volatile 和 synchorized 的區別
- 假如有一個類 A 和一個 類 B,這兩個類都有一個變量和一個自增操作,A 類的變量用 volatile 修飾,B 類沒有用,B 類的自增操作用 synchorized 修飾,他們都是線程安全的嗎,如果都是,那爲什麼要用 synchorized ,volatile 不是更輕量嗎,synchorized 有什麼作用。
- 智力題:島上有羣人,各自戴着紅帽子或者白帽子,但都不知道自己帽子顏色,只有知道自己帽子顏色,第二天才能出島,這時候有個人進來說了句“你們之中至少有一個人戴了頂紅帽子”,問島上的人最後的離開情況
- 算法:矩陣中的最長上升序列
字節跳動二面面試題:
- 自我介紹
- 項目介紹
- java集合框架全部介紹,從list set queue到map
- hashmap底層擴容線程安全問題
- 如果一個對象 要作爲hashmap的key需要做什麼?
- Threadlocal類以及內存泄漏
- 線程同步方式,具體每一個怎麼做的