圓你的大廠夢!字節跳動Java高頻面試題真題:一/二/三面+常見問題

圓你的大廠夢!字節跳動Java高頻面試題真題:一/二/三面+常見問題

目錄

  • 技術一面(算法)
  • 技術二面
  • 技術三面
  • JAVA開發技術面試中可能問到的問題
  • 面試注意點

一、字節跳動技術一面(算法)

  1. Java 的 16 進制與字符串的相互轉換函數
  2. JAVA 時間格式化處理
  3. 將毫秒轉化爲日期
  4. 文本的倒序輸出
  5. 判斷一個數字是奇數還是偶數
  6. 用Hibernate 實現分頁
  7. 35 選 7 彩票程序
  8. 獲取 GMT8 時間
  9. 中文亂碼轉換
  10. 小標籤
  11. Big5 字與 Unicode 的互換
  12. 取得服務器當前的各種具體時間
  13. 用半角的特殊符號代替全角的特殊符號
  14. 數組和數組之間的轉換代碼
  15. 從資源文件裏讀取值的類
  16. 一個隨機類
  17. 計算傳入值是否星期六
  18. 轉換文件大小
  19. Java 日期格式化及其使用例子
  20. Java幾個常用方法
  21. 判斷字符是否屬於中文
  22. 去掉字符串中重複的子字符串
  23. 將指定 byte 數組以 16 進制的形式打印到控制檯
  24. 獲得任意一個整數的階乘,遞歸
  25. 拷貝一個目錄或者文件到指定路徑下
  26. 簡單的 txt 轉換 xml
  27. 字母排序(A-Z)(先大寫,後小寫)
  28. 列出某文件夾及其子文件夾下面的文件,並可根據擴展名過濾
  29. 字符串匹配的算法

二、字節跳動技術二面

  1. List和Set比較,各自的子類比較
  2. HashMap和ConcurrentHashMap的區別
  3. HashTable和ConcurrentHashMap的區別
  4. String,StringBuffer和StringBuilder的區別
  5. wait和sleep的區別
  6. JVM的內存結構
  7. 強引用,軟引用和弱引用的區別
  8. 數組在內存中如何分配
  9. Spring MVC的核心是什麼,請求的流程是怎麼處理的,控制反轉怎麼實現的
  10. Mybatis如何處理結果集
  11. Java的多態表現在哪裏
  12. 接口有什麼用
  13. 說說http,https協議
  14. 說說tcp/ip協議族
  15. tcp五層網絡協議
  16. TCP與UDP的區別
  17. cookie和session的區別,分佈式環境怎麼保存用戶狀態
  18. BIO、NIO和AIO的區別
  19. Java中常說的堆和棧,分別是什麼數據結構;另外,爲什麼要分爲堆和棧來存儲數據
  20. 爲什麼要用線程池
  21. MySQL優化經驗
  22. 悲觀鎖和樂觀鎖的區別,怎麼實現
  23. 什麼是線程死鎖?死鎖如何產生?如何避免線程死鎖?
  24. notify和notifyAll區別
  25. 談一談對MySQL InnoDB的認識
  26. 談一談數據庫事務的隔離級別?
  27. MySQL主備同步的基本原理
  28. 類在虛擬機中的加載過程
  29. 強引用、軟引用、弱引用、虛引用與GC的關係
  30. 請寫一段棧溢出、堆溢出的代碼

三、字節跳動技術三面

  1. 說一下spring中Bean的作用域
  2. 說一下spring中Bean的生命週期
  3. 對Spring中依賴注入兩種方式的認識
  4. Spring框架中都用到了哪些設計模式?
  5. BeanFactory 和ApplicationContext的區別
  6. 數據庫的三大範式
  7. TCP和UDP的區別及其適用場景
  8. 說一下Spring的核心模塊
  9. (轉發)forward與(重定向)redirect的區別
  10. redis常用的五種數據類型
  11. 內部類和靜態內部類的區別
  12. 非靜態內部類中的變量和方法不能聲明爲靜態的原因
  13. String,StringBuilder,StringBuffer的區別
  14. 集合和數組之間的相互轉換
  15. 面向對象的特徵有哪些方面?
  16. 概括的解釋下線程的幾種狀態
  17. Java集合類裏面基本的接口有哪些
  18. Iterator和ListIterator的區別
  19. Enumeration和Iterator的區別
  20. 介紹一下HTTP的響應結構
  21. final、finalize和finally各自的作用
  22. 說一下你瞭解的幾種進程間的通信方式

四、JAVA開發技術面試中可能問到的問題

1. 基礎知識

  • 集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet);
  • HashMap的底層實現,之後會問ConcurrentHashMap的底層實現;
  • 如何實現HashMap順序存儲:可以參考LinkedHashMap的底層實現;
  • HashTable和ConcurrentHashMap的區別;
  • String,StringBuffer和StringBuilder的區別;
  • Object的方法有哪些:比如有wait方法,爲什麼會有;
  • wait和sleep的區別,必須理解;
  • JVM的內存結構,JVM的算法;
  • 強引用,軟引用和弱引用的區別;
  • 數組在內存中如何分配;
  • 用過哪些設計模式,手寫一個(除單例);
  • springmvc的核心是什麼,請求的流程是怎麼處理的,控制反轉怎麼實現的;
  • spring裏面的aop的原理是什麼;
  • mybatis如何處理結果集:反射,建議看看源碼;
  • java的多態表現在哪裏;
  • 接口有什麼用;
  • 說說http,https協議;
  • tcp/ip協議簇;
  • osi五層網絡協議;
  • tcp,udp區別;
  • 用過哪些加密算法:對稱加密,非對稱加密算法;
  • 說說tcp三次握手,四次揮手;
  • cookie和session的區別,分佈式環境怎麼保存用戶狀態;
  • git,svn區別;
  • 請寫一段棧溢出、堆溢出的代碼;
  • ThreadLocal可以用來共享數據嗎;

2. IO

  • bio,nio,aio的區別;
  • nio框架:dubbo的實現原理;
  • 京東內部的jsf是使用的什麼協議通訊:可參見dubbo的協議;

3. 算法

  • java中常說的堆和棧,分別是什麼數據結構;另外,爲什麼要分爲堆和棧來存儲數據。
  • TreeMap如何插入數據:二叉樹的左旋,右旋,雙旋;
  • 一個排序之後的數組,插入數據,可以使用什麼方法?答:二分法;問:時間複雜度是多少?
  • 平衡二叉樹的時間複雜度;
  • Hash算法和二叉樹算法分別什麼時候用;
  • 圖的廣度優先算法和深度優先算法:詳見jvm中垃圾回收實現;

4. 多線程

  • 說說阻塞隊列的實現:可以參考ArrayBlockingQueue的底層實現(鎖和同步都行);
  • 進程通訊的方式:消息隊列,共享內存,信號量,socket通訊等;
  • 用過併發包的哪些類;
  • 什麼地方用了多線程;
  • Excutors可以產生哪些線程池;
  • 爲什麼要用線程池;
  • volatile關鍵字的用法:使多線程中的變量可見;

5. 數據庫相關(MySQL)

  • MySQL優化經驗:
  • MySQL的語句優化,使用什麼工具;
  • MySQL的索引分類:B+,hash;什麼情況用什麼索引;
  • MySQL的存儲引擎有哪些,區別是什麼;
  • 說說事務的特性和隔離級別;
  • 悲觀鎖和樂觀鎖的區別,怎麼實現;

6. Mq

  • mq的原理是什麼:有點大。。都可以說;
  • mq如何保證實時性;
  • mq的持久化是怎麼做的;

7. Redis

  • redis和memcache的區別;
  • 用redis做過什麼;
  • redis是如何持久化的:rdb和aof;
  • redis集羣如何同步;
  • redis的數據添加過程是怎樣的:哈希槽;
  • redis的淘汰策略有哪些;
  • redis有哪些數據結構;

8. Zookeeper

  • zookeeper是什麼;
  • zookeeper哪裏用到;
  • zookeeper的選主過程;
  • zookeeper集羣之間如何通訊;
  • 你們的zookeeper的節點加密是用的什麼方式;
  • 分佈式鎖的實現過程;

9. Linux

  • linux常用的命令有哪些;
  • 如何獲取java進程的pid;
  • 如何獲取某個進程的網絡端口號;
  • 如何實時打印日誌;
  • 如何統計某個字符串行數;

五、面試注意點

  1. 至少定出2天的準備時間
  2. 一定得再次閱讀公司的職位要求
  3. 在刷題前,先準備項目描述的說辭
  4. 一定得準備項目描述裏提到的技術
  5. 一定得準備亮點話題,並想辦法往這方面繞,而且亮點話題多多益善
  6. 時間多,再去刷題
  7. 面試題,通過準備讓面試官感覺你軟實力也行

寫在最後:

冷靜的思維,點亮智慧的殿堂;
抽象的理念,交匯靈感的火花;
平凡的字符,串起別樣的精彩;
細膩的語言,盤活冰冷的程序;
非凡的才華,開啓幸福的天地。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章