位元組跳動面經總結,之前被面試官殘虐MySQL!
前言
每一個程式設計師都擁有一座大廠夢,我也不例外,去年面試位元組跳動,竟然被MySQL問倒了,很多相關性的問題都沒有答上來,才2面就涼涼了。回去之後也潛心複習了,準備了二戰,如今終於進入了位元組跳動,斬獲位元組offer!
位元組跳動面試題
1、請解釋關係型資料庫概念及主要特點?
2、請說出關係型資料庫的典型產品、特點及應用場景?
3、請詳細描述 SQL 語句分類及對應代表性關鍵字。
4、什麼是 MySQL 多例項,如何配置 MySQL 多例項?
5、如何加強 MySQL 安全,請給出可行的具體措施?
6、誤操作執行了一個 drop 庫 SQL 語句,如何完整恢復?
7、詳述 MySQL 主從複製原理及配置主從的完整步驟。
8、MySQL 如何實現雙向互為主從複製,並說明應用場景?
9、MySQL 如何實現級聯同步,並說明應用場景?
10、MySQL 主從複製故障如何解決?
二戰阿里,天貓團隊面試題(3輪技術面+HR面)
面試技術題:
1、自我介紹唄
2、專案介紹唄(先自己介紹專案,然後再聊天)
3、junit用法,before,beforeClass,after,afterClass的執行順序
4、分散式鎖
5、nginx的請求轉發演算法,如何配置根據權重轉發
6、用hashmap實現redis有什麼問題(死鎖,死迴圈,可用ConcurrentHashmap)
7、執行緒的狀態
8、執行緒的阻塞的方式
9、sleep和wait的區別
10、hashmap的底層實現
11、一萬個人搶100個紅包,如何實現(不用佇列),如何保證2個人不能搶到同一個紅包,可用分散式鎖
12、Java記憶體模型,垃圾回收機制,不可達演算法
13、兩個Integer的引用物件傳給一個swap方法在方法內部交換引用,返回後,兩個引用的值是否會發現變化
14、AOP的底層實現,動態代理是如何動態,假如有100個物件,如何動態的為這100個物件代理?
15、是否用過maven install、 maven test、git(make install是安裝本地jar包)
16、Tomcat的各種配置,如何配置docBase
17、Spring的bean配置的幾種方式
18、Web.xml的配置
19、Spring的監聽器。
20、Zookeeper的實現機制,有快取,如何儲存註冊服務的
21、IO會阻塞嗎?readLine是不是阻塞的
22、用過 Spring的執行緒池還是java的執行緒池?
23、字串的格式化方法 (20,21這兩個問題問的太低階了)
24、時間的格式化方法
25、定時器用什麼做的
26、執行緒如何退出結束
27、java有哪些鎖?樂觀鎖 悲觀鎖 synchronized 可重入鎖 讀寫鎖,用過reentrantlock嗎?reentrantlock與synmchronized的區別
28、ThreadLocal的使用場景
29、Java的記憶體模型,垃圾回收機制
30、為什麼執行緒執行要呼叫start而不是直接run(直接run,跟普通方法沒什麼區別,先調start,run才會作為一個執行緒方法執行)
31、qmq訊息的實現機制(qmq是去哪兒網自己封裝的訊息佇列)
32、遍歷hashmap的三種方式
33、JVM的一些命令
34、memcache和redis的區別
35、Mysql的行級鎖加在哪個位置
36、ConcurrentHashmap的鎖是如何加的?是不是分段越多越好
37、myisam和innodb的區別(innodb是行級鎖,myisam是表級鎖)
38、MySQL其他的效能優化方式
39、Linux系統日誌在哪裡看
40、如何檢視網路程序?
41、統計一個整數的二進位制表示中bit為1的個數
42、JVM記憶體模型,java記憶體模型
面試題答案:
二戰前,我是如何複習的?
(1)MySQL 專題部分(先刷題)
1、Mysql 中有哪幾種鎖?
2、MYSQL 資料表在什麼情況下容易損壞?
3、MySQL 裡記錄貨幣用什麼欄位型別好
4、MYSQL 支援事務嗎?
5、解釋訪問控制列表
6、什麼是通用 SQL 函式?
7、什麼是非標準字串型別?
8、Mysql 表中允許有多少個 TRIGGERS?
9、什麼樣的物件可以使用 CREATE 語句建立?
10、NOW()和 CURRENT_DATE()有什麼區別?
11、可以使用多少列建立索引?
12、InnoDB 是什麼?
13、Mysql 如何優化 DISTINCT?
14、如何輸入字元為十六進位制數字?
15、如何顯示前 50 行?
......
MySQL 面試題答案:
(2)MySQL 效能優化的21個最佳實踐
1、為查詢快取優化你的查詢
2、EXPLAIN 你的 SELECT 查詢
3、當只要一行資料時使用 LIMIT 1
4、為搜尋欄位建索引
5、在 Join 表的時候使用相當型別的例,並將其索引
6、千萬不要 ORDER BY RAND()
7、避免 SELECT *
8、永遠為每張表設定一個 ID
9、使用 ENUM 而不是 VARCHAR
10、從 PROCEDURE ANALYSE() 取得建議
11、儘可能的使用 NOT NULL
12、Prepared Statements
13、無緩衝的查詢
14、把 IP 地址存成 UNSIGNED INT
15、固定長度的表會更快
16、垂直分割
17、拆分大的 DELETE 或 INSERT 語句
18、越小的列會越快
19、選擇正確的儲存引擎
20、使用一個物件關係對映器(Object Relational Mapper)
21、小心“永久連結”
(3)MySQL 效能調優與架構設計
基礎篇:
1、MySQL基本介紹
2、MySQL架構組成
3、MySQL儲存引擎簡介
4、MySQL安全管理
5、MySQL備份與恢復
效能優化篇:
1、影響MySQLServer效能的相關因素
2、MySQL資料庫鎖定機制
3、MySQL資料庫Query的優化
4、MySQL資料庫Schema設計的效能優化
5、MySQLServer效能優化
6、常用儲存引擎優化
架構設計篇:
1、MySQL可擴充套件設計的基本原則
2、可擴充套件性設計之MySQLReplication
3、可擴充套件性設計之資料切分
4、可擴充套件性設計之Cache與Search的..
5、MySQLCluster
6、高可用設計之思路及方案
7、高可用設計之MySQL監控
我的複習寶典資料
(1)Java面試手冊
1、效能優化面試專欄
2、微服務架構面試專欄
3、併發程式設計高階面試專欄
4、開源框架面試題專欄
5、分散式面試專欄
(2)實戰文件
1、Redis實戰
2、MySQL實戰
3、Spring Boot實戰
4、Spring Cloud實戰
5、實戰Java虛擬機器
以實戰Java虛擬機器為例:
1、初探Java虛擬機器
2、認識Java虛擬機器的基本結構
3、常用Java 虛擬機器引數
4、垃圾回收概念與演算法
5、垃圾收集器和記憶體分配
6、效能監控工具
7、分析Java堆
8、鎖與併發
9、Class 檔案結構
10、Class 裝載系統
11、位元組碼執行
(3)Java核心知識點整理文件
由於篇幅限制,很多內容都只展示了目錄和截圖,這些都整理在文件裡,需要這些文件資料的,均可以分享給大家,需要的朋友, 希望所有的程式設計師都能夠學習起來,努力實現我們的大廠夢!
喜歡小編的分享可以點贊關注哦,小編持續為你分享最新文章 和 福利領取哦