字節跳動的郵件會說考察通用型的業務問題和過往的項目經歷
字節跳動一定會考算法題,建議有針對性的刷LeetCode探索裏面的字節跳動算法題專場,裏面的算法題真的很準,我面試時就碰到兩題原題。
自我介紹,公司職能,項目簡介
索引是否能夠命中相關問題 最左匹配。
spring註解、ioc AOP相關的,基本都問到了
hashmap源碼 鏈表+數組 and so on , 對擴容和內存機制也有說
說一下你知道的GC算法 標記-整理、標記-刪除,標記-複製,分代回收,大致說了下內容,面試官沒表示滿意,也沒說不滿意,直接下一題了
描述一下你現在負責的項目,說一說大體架構 就把自己手頭上負責的項目大致架構圖畫一畫,這個估計是想了解對手頭負責事情的瞭解程度和表達能力
說一說怎麼解決脫庫風險 這個沒說好,只能說出一些訪問限制,數據權限等角度,感覺解決不了脫庫問題
筆試題:一個鏈表,每K位反轉
寫一個線程安全的單例模式
.進程調度都有哪些算法
你的user表的主鍵是什麼,如果不用auto_increment,我該如何實現id
ARP是什麼?ARP內部如何實現?
DNS是什麼?內部如何實現
內存單元的作用是什麼
棧,隊列是什麼?區別是什麼?算法題1:用棧來實現隊列。
操作系統,進程狀態,進程調度,CPU調度基本單位,進程線程區別
CPU調度單位,中斷實現機制,軟硬中斷的區別
計算機網絡,IP協議在那層,ping命令底層用的什麼協議,一個ip數據包經過一個路由器之後包裏改變了什麼,
traceroute命令底層是用的什麼協議,是怎麼實現的。
算法題:二叉樹最小公共祖先
get,post的區別
http請求的組成
OSI 7層協議?有哪些是可靠的網絡連接?TCP爲什麼是可靠連接?cookie vs. session
封裝、繼承、多態
二分查找
無重複元素的二分查找
含重複元素的二分查找
找第k大數
快排實現、堆實現
進階:不用額外空間,儘可能快的找到第k大數
兩個棧實現一個隊列、怎麼優化
滑動窗口、窗口大小
什麼是線程安全
左連接、右連接
c++與java的區別
實現hashmap,怎麼擴容,怎麼處理數據衝突?怎麼高效率的實現數據遷移?
單例模式,什麼時候用到,還了解哪些設計模式,裝飾者模式是什麼,舉例
介紹死鎖和如何避免
從輸入網址到獲得頁面的網絡請求過程
HTTP header
Redis瞭解嗎?
MySQL引擎有什麼?有什麼差異?
Linux進程狀態,Linux進程什麼時候會變爲等待?
算法題1:LRU cache (LeetCode 146)
算法題2:一個有符號的有序數組,問這些數平方之後有多少個不重複的數?(雙指針)
算法題:在一個長字符串中找一個子字符串是否存在,有,返回index,沒有,返回-1。子字符串要求連續,但不在乎內部字符的順序。(滑動窗口問題)
n個人,n個座位,每個人都有自己的座位,問每個人都不坐自己座位的坐法有多少種?(動態規劃,解決重複子問題,兩種情況討論)
你有一個網站項目,服務器是怎麼弄的?
session和cookie有什麼差異,分別什麼時候用,在什麼時候生成,長時cookie和短時cookie分別用在什麼時候
堆。什麼是最小堆?什麼是最大堆?在堆中怎麼插入一個元素?
java修飾符、java線程同步的方法、synchronized對不同方法加鎖的區別、java中的引用、kotlin和java的區別,算法題是平衡二叉樹的判斷。
數據庫索引、事物等的概念、sql語句的結構、java中類似c++中的析構函數、java和c++的異同點、java和c++各自傳參數的方式
懶加載的單例模式實現、Synchronized介紹、Handler原理、線程池介紹、Service介紹、已定義View、listview如何優化,算法是求給定數組中連續數字的最大和
String[]的父類是否是object?
java靜態方法是否可以被重寫
數據庫如何短時間高效批量插入數據
arraylist和LinkedList的區別,各自的使用場景
手寫快排和堆排
最短路徑算法