開頭
設計模式是一套被反復使用的、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。在項目中合理地運用設計模式可以完美地解決很多問題,每種模式在現實中都有相應的原理來與之對應,每種模式都描述了一個在我們周圍不斷重復發生的問題,以及該問題的核心解決方案,這也是設計模式能被廣泛應用的原因。
阿里巴巴一面
- 自我介紹這個就不說了,開頭必問的
- 說一下StringBuilder 和 StringBuffer
- Spring bean加載,實例化的過程
- Spring AOP源碼看過嗎
- java內存模型說一下
- 如果給你一個map,里面有很多很多對象,那么這個map存放在哪
- 了解GC算法嗎?
- 說一下CMS垃圾回收器
- B+樹和B樹的區別?
- haspmap底層講一講
- ConcurrentHashMap的底層實現?
- CAS是硬件實現還是軟件實現?
- volatile是鎖嗎?
- 淘寶和京東的區別,你覺得是什么?
項目相關:
- 介紹一下你簡歷上寫的項目?自己主要做了什么?
- 你覺得項目里給你最大的挑戰是什么?遇到了什么問題?如何解決的?從中學到了什么?
- 項目的架構圖能畫一下不?
- 覺得項目有哪些地方可以改進完善?
- 如果我有很多字段都需要建立索引,怎么辦?
- Mysql的存儲引擎,你用的是哪種?
代碼面:
- 設計一個多線程打印程序,第i個線程只打印i-1數字,比如第1個線程打印數字0,第2個線程只打印數字1,依次類推。任意給定一個數字序列,比如3382019835830,能夠使用該程序打印出來。
- 快速找出一個數組中的兩個數字,讓這兩個數字之和等于一個給定的值,為了簡化起見,我們假設這個數組中肯定存在至少一組符合要求的解。
阿里巴巴二面
- 又聊了項目
- 你說到你項目里用了UDP,你為什么不用TCP
- 那你詳細說一下TCP和UDP的區別
- 數據庫用的是什么(MySQL)
- 那你的數據量是多少(幾百萬)
- 那你這幾百萬條,做了什么查詢優化(索引)
- 怎么建的索引
- 為什么用時間和id來做索引?
- 數據庫的隔離級別
- 知道什么是主從復制嗎?
- 你說一下建立索引的規則
- JAVA類加載機制(加載驗證準備解析初始化,又說到雙親委派模型)
- 線程池所有參數講一講
- ConcurrentHashMap的底層實現
- RPC用過嗎?
- 消息隊列呢?
**總結:**前面問了一些基礎性的東西,然后就一直往深了問,問的也基本是有關項目的問題,因為之前做的本身就是一個小項目,也并沒有什么亮點,二面結束我就回去等通知了,結果也肯定是涼涼了。
汲取教訓,突破底層技術
其實每次面試不管成功還是失敗,都是一次很好的學習機會,所以一定要認真對待每次面試,從面試中總結經驗,在面試中掃盲,然后回家進行查漏補缺。
首先就是在面試結束后梳理自己的知識體系,這份大綱是目前一線大廠主流的技術,也是面試的重點,大家可以對照梳理自己的知識點,用來掃盲最好不過了
梳理完知識點后結合面試所問到的內容,大致可以看出是哪些不足,然后針對這些知識點再一步一步的深度挖掘,從這位讀者的面試看出,他應該可以深度學習一下數據庫方面的知識,那接下來我也就跟大家主要的分享一下關系型數據庫——MySQL的深度進階。
MySQL深度進階
MySQL基礎內容(稍微帶過)
- MySQL基本介紹
- MySQL架構組成
- MySQL存儲引擎簡介
- MySQL安全管理
- MySQL備份與恢復
MySQL性能優化
- 影響MySQLServer性能的相關因素
- MySQL數據庫鎖定機制
- MySQL數據庫Query的優化
- MySQL數據庫Schema設計的性能優化
- MySQLServer性能優化
- 常用存儲引擎優化
MySQL架構設計
- MySQL可擴展設計的基本原則
- 可擴展性設計之MySQLReplication
- 可擴展性設計之數據切分
- 可擴展性設計之Cache與Search的利用
- MySQLCluster
- 高可用設計之思路及方案
- 高可用設計之MySQL監控
面試準備+復習資料分享:
為了應付面試也刷了很多的面試題與資料,現在就分享給有需要的讀者朋友,資料我只截取出來一部分哦,有需要的可以來找我獲取哈
獲取方式:點擊藍色字體即可免費獲取
取哈
獲取方式:點擊藍色字體即可免費獲取
[外鏈圖片轉存中…(img-810iCAGU-1624444207785)]