面試阿里P6,Java程式設計師必須掌握的技術

歡喜程式設計發表於2021-09-18
  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記憶體模型

面試題答案:

image.png

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 面試題答案: image.png

(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. 小心“永久連結”

image.png

(3)MySQL 效能調優與架構設計

  • 基礎篇:

總結

這份面試題幾乎包含了他在一年內遇到的所有面試題以及答案,甚至包括面試中的細節對話以及語錄,可謂是細節到極致,甚至簡歷最佳化和怎麼投簡歷更容易得到面試機會也包括在內!也包括教你怎麼去獲得一些大廠,比如阿里,騰訊的內推名額!

某位名人說過成功是靠99%的汗水和1%的機遇得到的,而你想獲得那1%的機遇你首先就得付出99%的汗水!你只有朝著你的目標一步一步堅持不懈的走下去你才能有機會獲得成功!

成功只會留給那些有準備的人!

**[CodeChina開源專案:【一線大廠Java面試題解析+核心總結學習筆記+最新講解影片】](

)**

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990490/viewspace-2792797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章