面試阿里(P8)竟被MySQL難倒,奮發圖強二次面試斬獲阿里offer

牛頓說過“無論做什麼事情,只要肯努力奮鬥,是沒有不成功的”。我也一直把這句話當做自己的座右銘,這句箴言在今年也徹底在“我”身上實現了 。

每一個程序員都擁有一個大廠夢,我肯定也不例外的,去年面試阿里巴巴,竟然被MySQL問倒了,很多相關性的問題都沒有答上來,才2面就涼涼了。回去之後也潛心複習了,準備了二戰,如今終於進入了阿里巴巴,被錄用。

以下展示的阿里巴巴面試題(含答案)、學習資料、實戰文檔等

 

01 阿里巴巴面試題之MySQL

之前的阿里面試題都有做總結,具體面試題內容整理成了文檔,本文是針對MySQL系列的,所以下面只展示了自己第一次面試阿里時被吊打問到的一些MySQL難題

  1. 請解釋關係型數據庫概念及主要特點?
  2. 請說出關係型數據庫的典型產品、特點及應用場景?
  3. 請詳細描述 SQL 語句分類及對應代表性關鍵字。
  4. 什麼是 MySQL 多實例,如何配置 MySQL 多實例?
  5. 如何加強 MySQL 安全,請給出可行的具體措施?
  6. 誤操作執行了一個 drop 庫 SQL 語句,如何完整恢復?
  7. 詳述 MySQL 主從複製原理及配置主從的完整步驟。
  8. MySQL 如何實現雙向互爲主從複製,並說明應用場景?
  9. MySQL 如何實現級聯同步,並說明應用場景?
  10. MySQL 主從複製故障如何解決?

02 二戰阿里,天貓團隊面試題(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內存模型

面試題答案:

 

03 二戰前,我是如何複習的?

(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 行?
  16. ......

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監控

 

04 我的複習寶典資料

(1)Java面試手冊

  • 性能優化面試專欄
  • 微服務架構面試專欄
  • 併發編程高級面試專欄
  • 開源框架面試題專欄
  • 分佈式面試專欄

 

(2)實戰文檔

  • Redis實戰
  • MySQL實戰
  • Spring Boot實戰
  • Spring Cloud實戰
  • 實戰Java虛擬機

以實戰Java虛擬機爲例:

  1. 初探Java虛擬機
  2. 認識Java虛擬機的基本結構
  3. 常用Java 虛擬機參數
  4. 垃圾回收概念與算法
  5. 垃圾收集器和內存分配
  6. 性能監控工具
  7. 分析Java堆
  8. 鎖與併發
  9. Class 文件結構
  10. Class 裝載系統
  11. 字節碼執行

 

(3)Java核心知識點整理文檔

 

 

由於篇幅限制,很多內容都只展示了目錄和截圖希望所有的程序員都能夠學習起來,努力實現我們的大廠夢!

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