1. 離職原因;
2. Zookeeper在專案中的使用及原理;
3. Springcloud的一些元件介紹;
4. 分散式鎖:
Redis實現方式:
redis:為什麼使用setnx,或者說set 和setNx有什麼區別;
setNx:系統在10:05 設定一個值,並給出5分鐘的過期時間,系統剛剛set完之後redis叢集崩潰,10:11分系統重新啟動成功,那麼redis中set的值是否還存在?
考察點:
1、redis 的持久化:剛set完是否能夠被持久化到快照或者binlog紀錄檔中;
2、假設redis被持久化,且系統重新啟動時間超過了redis設定的過期時間,那麼key是否會被清理;
zookeeper實現方式:
5. 多執行緒的建立方式:
1、繼承thread類;
2、實現runnable介面;
3、實現callable介面;
4、執行緒池方式進行建立及每個引數之間的邏輯關係;
6. 伺服器CPU數量及執行緒池數量的關係;
1、伺服器cpu數量(n);
2、是IO密集型(2n個執行緒)應用還是計算密集型(n+1個執行緒)應用;
7. Mysql的sql優化
優化方向:
1、 Mysql使用過程中走索引的語句:
2、 索引的優化:
3、 億級的資料必須使用like進行查詢,如何優化?
8. 如何做一個秒殺系統;
1、MQ做限流:保證只有1000個人可以存取系統;
2、使用redis做快取;
3、redis往mysql中進行持久化
9. 自己認為自己的技術怎麼樣?
1. Mysql是叢集還是單節點;最大的表中資料量大約是多少?3000w-4000w;
2. Mysql主從設定是DBA去做還是自己去做?mysql主從同步的機制的原理?mysql主從複製主要有幾種模式?
3. Redis持久化方式:rdb、aof;redis中哪個版本開始可以對分散式使用;
4. Nginx的使用場景;
1、請求轉發;
2、負載均衡;
5. Spark主要用來做什麼的?
1.ConcurrentHashMap底層原理
2.手寫一個LRU
用LinkedHashMap
3.HashMap底層資料結構
4.為什麼用紅黑樹不用普通的AVL樹
5.為什麼在8的時候連結串列變成樹
6.為什麼在6的時候從樹退回連結串列
7.執行緒池7個引數,該怎麼設定最好
8.說一下volatile
9.volatile的可見性和禁止指令重排序怎麼實現的
可見性:快取一致性協定
禁止指令重排序:JMM模型裡有8個指令完成資料的讀寫,通過其中load和store指令相互組合成的4個記憶體屏障實現禁止指令重排序
10.CAS是什麼
11.PriorityQueue底層是什麼,初始容量是多少,擴容方式呢
最小堆,
11,若原始大小<64,則擴容為原來的2倍+2,不然就擴容為原來的1.5倍
12.HashMap的容量為什麼要設定為2的次冪
13.你知道跳錶嗎,什麼場景會用到
ConcurrentSkipListMap,用在多執行緒下需要自定義排序順序時
14.CopyOnWriteArrayList知道嗎,迭代器支援fail-fast嗎
執行緒安全ArrayList,寫時複製,迭代器是採用快照風格,不支援fail-fast
15.innodb的底層資料結構
16.為什麼用B+樹不用B樹
17.為什麼用B+樹不用紅黑樹
18.coding:無序陣列怎麼尋找第k大的數,寫一個二元樹層次遍歷
19.不知道大小的資料流取其中100個數,怎樣的取法能最隨機
20.n個物品每個物品都有一定價值,分給2個人,怎麼分兩個人的價值差最小
21.假設百度每個頁面能放100個網頁,每個頁面都有一個評分,怎樣快速找到第8頁的所有網頁
面試他的是一位阿里P9,這位大佬只問了一道題是:LINUX的核心是什麼?
這位大佬最近還分享了一份Java全棧知識點的面試題涉及:Java基礎題、Java集合、異常&反射、IO&NIO、多執行緒、JVM、Linux、Mysql、Spring、Mybatis、Nginx、Redis、Dubbo、SpringBoot、Kafka 、SpringCloud、簡歷這些模板。(面試題全部都是有答案的,受制於文章篇幅問題,免費獲取方式在文末!)
17.Locale類是什麼?
18Java中final. finally. finalize的區別與用法
19.hashCode0和equals0的區別
20.深拷貝和淺拷貝的區別是什麼?
21Java中操作字串都有哪些類?它們之間有什麼區別?
22.String str= "a"與String str=new String("a")- 樣嗎?
23.抽象類能使用final修飾嗎?
24.static關鍵字5連問
25.過載(Overload) 和重寫(Override) 的區別。過載的方法能否根據返回型別進行區分?
26Java的四種參照
27.Java中Comparator與Comparable有什麼不同?
28. Java序列化,反序列化?
29.什麼情況需要Java序列化?
30.序列化的實現?
31.如果某些資料不想序列化,如何處理?
32.Java泛型和型別擦除?
面試指導腦圖
1.Java集合框架的基礎介面有哪些?
2.Collection和Collections 有什麼區別?
3.List. Set. Map是否繼承自Collection介面?
4.Collections.sort排序內部原理
5.List. Set. Map 之間的區別是什麼?
6.HashMap和Hashtable有什麼區別?
7.如何決定使用HashMap還是TreeMap?
8.說一下HashMap的實現原理?
9.說一下HashSet的實現原理?
10.ArrayList和LinkedList的區別是什麼?
11.為何Map介面不繼承Collection介面?
12.ArrayList和Vector有何異同點?
13.Array和ArrayList有何區別?
14.在Queue中poll0和remove0有什麼區別?
15.LinkedHashMap有什麼特點?
16.HashMap的底層實現原理? (高頻問題)
17.HashMap並行安全的問題
18JDK1.8與JDK1.7的效能對比
19HashMap操作注意事項以及優化?
1.error和exception有什麼區別?
2.說出5個常見的RuntimeException?
3.throw和throws的區別?
4.Java中異常分類
5.如何自定義異常
6Java中例外處理
7.什麼是Java反射機制?
8.舉例什麼地方用到反射機制?
9.java反射機制的作用
10.Java反射機制類
11 .反射機制優缺點?
12.利用反射建立物件?
6.阻塞10 (blocking 10)
7.非阻塞I/O (nonblocking 10)
8.I/O多路複用模型(10 multiplexing)
9.訊號驅動I/O模型
10.非同步/O(asynchronous 10)
11.NIO與10的區別?
12.NIO和I0適用場景
13.NIO核心元件
14.什麼是channel
15.Java NIO中最常用的通道實現?
16.Buffer是什麼?
17.核心Buffer實現有哪些?
18.buffen讀寫資料基本操作
19.Selector是什麼?
20.通道可以監聽哪幾個事件?
21.為什麼要用Selector?
22 Selector處理多Channe|圖文說明
1.什麼是程序?
2.什麼是執行緒?
3.執行緒的實現方式?
4.Theaed類中的start0和run0方法有什麼區別?
5.執行緒NEW狀態
6.執行緒RUNNABLE狀態
7.執行緒的RUNNING狀態
8.執行緒的BLOCKED狀態
9.執行緒的TERMINATED狀態
10.執行緒狀態轉化圖
........................................
90.為什麼使用執行緒池
91.執行緒池工作流程
92.建立執行緒池引數有哪些,作用?
93.向執行緒池提交任務
94.關閉執行緒池
95.執行緒池如何合理設定
96.Executor
97.Executor框架的主要成員
98.FixedThreadPool
99.SingleThreadExecutor
100.CachedThreadPool
1JDK、JRE、 JVM關係?
2.啟動程式如何檢視載入了哪些類,以及載入順序?
3. class位元組碼檔案10個主要組成部分?
4.畫一下jvm記憶體結構圖?
5.程式計數器
6Java虛擬機器器棧
7.本地方法棧
8Java堆
9.方法區
10.執行時常數池?
11.什麼時候丟擲StackOverflowError?
12.Java7和Java8在記憶體模型上有什麼區別?
13.程式設計師最關注的兩個記憶體區域?
14.直接記憶體是什麼?
15.除了哪個區域外,虛擬機器器記憶體其他執行時區域都會發生OutOfMemoryError?
16.什麼情況下會出現堆記憶體溢位?
18.空間什麼情況下會丟擲OutOfMemoryError?
19.如何實現StrackOverflowError?
20.如何設定直接記憶體容量?
21.Java堆記憶體組成?
22.Edem : from : to預設比例是?
23.垃圾標記階段?
24.參照計數法?
25.根搜尋演演算法?
26JVM中三種常見的垃圾收集演演算法?
27標記-清除演演算法?
28.複製演演算法?
29.標記-整理演演算法?
30.分代收集演演算法?
31.垃圾收集器?
32.Stop The World?
34.PartNew收集器?
36.Parallel Scavenge?
37.Parallel Old收集器?
38.CMS收集器?
39.CMS垃圾回收的步驟?
41.CMS收集器優點?缺點?
42.G1收集器?
42. G1收集器是如何改進收集方式的?
43.虛擬機器器程序狀況工具?
44.虛擬機器器統計資訊工具?
45.jstat工具主要選項?
45.設定資訊工具?
46.記憶體映像工具?
47虛擬機器器堆轉儲存快照分析工具?
48.堆疊跟蹤工具?
49.除了命令列,還有什麼視覺化工具?
50.類加裁過程?
...............................
34.原始碼安裝通常的路子?
35.vim編輯器幾種操作模式?基本操作?
36.檢視裝置還有多少磁碟空間?
37.預設程序資訊顯示?
38.實時監測程序
39.如何中斷一個程序?
40.如何把一個程序放到後臺執行?
41如何停止一個程序?
42.驗證網路可連線命令是什麼?什麼原理?
43.檢視某埠是否被佔用?
44如何查詢匹配的檔案?基於檔案屬性?
45.如何檢視當前主機名?如何修改?如何重新啟動後生效?
46.如何寫一條規則, 拒絕某個ip存取本機8080埠?
47.哪個檔案包含了主機名和ip的對映關係?
48.如何用sed只列印第5行?刪除第一行? 替換字串?
49.列印檔案第一行到第三行?
50.如何用awk檢視第2行倒數第3個欄位?
...............................
35.檢視的優缺點?
36.主鍵和唯一索引區別?
37.如何隨機獲取一條記錄?
38.Mysql中的數值型別?
39.檢視當前表有哪些索引?
40.索引不生效的情況?
41.MWC?
42.sq|語句的執行流程?
43.如何獲取select語句執行計劃?
44.explain列有哪些?含義?
45.MySql最多建立多少列索引?
46.為什麼最好建立一個主鍵?
47.欄位為什麼要求建議為not nul?
48.varchar(10)和int(10)代表什麼含義
49.檢視是什麼?對比普通表優勢?
50.count(* )在不同引擎的實現方式?
1.什麼是nginx?
2.nginx主要特徵?
3.nginx常用命令?
4.工作模式及連線數上限?
5.nginx負載均衡幾種演演算法?
6.nginx有幾種程序模型?
7.如何定義錯誤提示頁面?
8.如何精準匹配路徑?
9.路徑匹配優先順序?
10.如何把請求轉發給後端應用伺服器?
11.如何根據檔案型別設定過期時間?
12.禁止存取某個目錄?
13.nginx負載均衡實現過程?
14.負載均衡設定?
15.設定超時時間?
16.開啟壓縮功能好處?壞處?
34.Redis的Java使用者端官方推薦?實際選擇? ;
35.Redis事務?
36.Redis事務開始到結束的幾個階段?
37.Redis中key的過期操作?
38.Redis過期鍵刪除策略?
39.Pipeline是什麼?為什麼要它?
40.如何獲取當前最大記憶體?如何動態設定?
41.Redis記憶體溢位控制?
42.Redis記憶體溢位策略?
43.Redis高可用方案?
44.Redis叢集方案?
45.Redis Cluster槽範圍?
46.Redis鎖實現思路?
47.什麼是布隆過濾器?
48.什麼是快取穿透?處理問題?
49.什麼是快取預熱?
50.什麼是快取雪崩?處理問題?
需要領取這套1200+道面試題的朋友麻煩幫忙一鍵三連一下這篇文章+關注我,掃碼獲取!