本來預備準備一下2020年的金三銀四,後來還是心有不甘,所以趁2019年末之際嘗試投了一下阿里,這一投還竟讓我給投中了,順順利利拿到了offer,現在已經入職阿里了。對了,我是Java方向,這次面試阿里,主要4面,其中給我印象最深的是問了調優這部分問題比較多,記得差點被“MySQL”難倒。好在面試之前我有做好複習,
多虧我讀了一些技術筆記,才能夠讓我順利通過。需要我的這些技術筆記、面試題(含答案)的朋友,私信我【阿里】即可免費獲取了~
阿里內推4面(核心題)
首先整理了一下這次4面的一些核心題,不是說這些題有多難,而是最容易被我們忽略掉,考察的是個人的一個思考能力和實現能力,由於篇幅有限原因,所以這些核心題的答案都整理的文檔裡,需要的私信我【答案】,會一一回復分享出來的~
- PGSQL(項目中用的是PGSQL)和MySQL的區別?
- Voletile關鍵字的意義?可見性是咋實現的,為啥不是線程安全?
- synchronized的底層實現?如果兩個代碼塊鎖不同的實例,兩個代碼塊的訪問會互斥嗎?
- 用cookie和session實現用戶登錄的過程是怎麼樣的?
- 聊了很久多線程的東西:Disruptor框架的用法,實現(這個是項目中用到的);線程池的用法,傳參,線程池的類型,線程數怎麼確定的;Future的異步調用過程是咋樣的?
- Future超時的情況?無限遞歸會造成JVM內存的什麼問題?
- Kafka(項目用到)的東西:Kafka如何保證可靠性,Kafka的主從機制描述下,ISR解釋下,消費者的配置情況。
- 幾個Linux命令top、nestat之類的
- 操作系統中的用戶態和內核態的概念?轉換的流程咋樣?
- Java線程的狀態有哪些?與OS的進程狀態的對應關係?
- hashcode和equals的區別?
- hashmap線程安全嗎?
- 用過redis嗎?
- 簡述一下如何找到redis中熱點數據最熱的那個?
- redis分佈式鎖如何保證原子性?
- Dubbo有哪幾種負載均衡策略?
- 介紹下mysql的回表和覆蓋索引?
- 說下模板方法模式?
- ......
大廠面試之MySQL系列
01 MySQL面試訓練題(共100題)
- Mysql 的存儲引擎,myisam和innodb的區別。
- 數據表類型有哪些
- MySQL數據庫作發佈系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
- 對於大流量的網站,您採用什麼樣的方法來解決各頁面訪問量統計問題?
- 如何進行SQL優化?
- 如何設計一個高併發的系統
- 鎖的優化策略
- 索引的底層實現原理和優化
- 什麼情況下設置了索引但無法使用
- SQL語句的優化
- 實踐中如何優化MySQL
- sql注入的主要特點
- 優化數據庫的方法
- 簡單描述mysql中,索引,主鍵,唯一索引,聯合索引的區別,對數據庫的性能有什麼影響(從讀寫兩方面)
- 數據庫中的事務是什麼?
- 瞭解XSS攻擊嗎?如何防止?
- SQL注入漏洞產生的原因?如何防止?
- 為表中得字段選擇合適得數據類型(物理設計)
- 存儲時期
- 簡述在MySQL數據庫中MyISAM和InnoDB的區別
- 解釋MySQL外連接、內連接與自連接的區別
- Myql中的事務回滾機制概述
- SQL語言包括哪幾部分?每部分都有哪些操作關鍵字?
- ......
02 MySQL 性能優化的21個最佳實踐
- 為查詢緩存優化你的查詢
- EXPLAIN 你的 SELECT 查詢
- 當只要一行數據時使用 LIMIT 1
- 為搜索字段建索引
- 在 Join 表的時候使用相當類型的例,並將其索引
- 千萬不要 ORDER BY RAND()
- 避免 SELECT *
- 永遠為每張表設置一個 ID
- 使用 ENUM 而不是 VARCHAR
- 從 PROCEDURE ANALYSE() 取得建議
- 儘可能的使用 NOT NULL
- Prepared Statements
- 無緩衝的查詢
- 把 IP 地址存成 UNSIGNED INT
- 固定長度的表會更快
- 垂直分割
- 拆分大的 DELETE 或 INSERT 語句
- 越小的列會越快
- 選擇正確的存儲引擎
- 使用一個對象關係映射器(Object Relational Mapper)
- 小心“永久鏈接”
其他調優系列:JVM調優+Tomcat調優
01 JVM系列面試訓練題
- 內存模型以及分區,需要詳細到每個區放什麼。
- 堆裡面的分區:Eden,survival (from+ to),老年代,各自的特點。
- 對象創建方法,對象的內存分配,對象的訪問定位。
- GC 的兩種判定方法
- SafePoint 是什麼
- GC 的三種收集方法:標記清除、標記整理、複製算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,有什麼思路?
- GC 收集器有哪些?CMS 收集器與 G1 收集器的特點。
- Minor GC 與 Full GC 分別在什麼時候發生?
- 幾種常用的內存調試工具:jmap、jstack、jconsole、jhat
- 類加載的幾個過程:
- JVM 內存分哪幾個區,每個區的作用是什麼?
- 如和判斷一個對象是否存活?(或者 GC 對象的判定方法)
- 簡述 java 垃圾回收機制?
- java 中垃圾收集的方法有哪些?
- java 內存模型
- java 類加載過程
- 簡述 java 類加載機制
- 類加載器雙親委派模型機制
- 什麼是類加載器,類加載器有哪些
- 簡述 java 內存分配與回收策率以及 Minor GC 和Major GC
02 JVM和性能優化(Xmind思維導圖)
03 JVM調優總結
04 Tomcat系列面試訓練題
- Tomcat 的缺省端口是多少,怎麼修改?
- Tomcat 有哪幾種 Connector 運行模式(優化)?
- Tomcat 有幾種部署方式?
- Tomcat 容器是如何創建 servlet 類實例?用到了什麼原理?
- Tomcat 如何優化?
- 內存調優
- 垃圾回收策略調優
- 共享 session 處理
- 添加 JMS 遠程監控
- 專業點的分析工具有
- 關於 Tomcat 的 session 數目
- 監視 Tomcat 的內存使用情況
- 打印類的加載情況及對象的回收情況
- Tomcat 一個請求的完整過程
- Tomcat 工作模式?
05 Tomcat深入剖析(PDF文檔)
- 第1章 一個簡單的Web服務器
- 第2章 一個簡單的servlet容器
- 第3章 連接器
- 第4章 Tomcat的默認連接器
- 第5章 servlet容器
- 第6章 生命週期
- 第7章 日誌記錄器
- 第8章 載入器
- 第9章 Session管理
- 第10章 安全性
- 第11章 StandardWrapper
- 第12章 StandardContext類
- 第13章 Host和Engine
- 第14章 服務器組件和服務組件
- 第15章 Digester庫
寫在末尾
很多事情,它都在告訴我,這個世界,是不會虧待堅持學習的人的。所以,無論你現在處於什麼階段,只要有開始,那就還沒有結束。
最後提醒:以上我個人自己所整理出來的Mysql相關的資料也好,或者其他文檔,是都可以免費分享給大家的,都需要的朋友,可以直接轉發+評論一下我的文章,關注我,然後私信【阿里】即可免費獲取~
閱讀更多 技術宅愛Java 的文章