一面:
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、簡歷這些模板,(面試題全部都是有答案的,受制于文章篇幅問題,免費獲取方式在文末!)
Java基礎題(32道題)
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泛型和型別擦除?

java集合(19道題)
面試指導腦圖

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操作注意事項以及優化?

例外&反射(12道)
1.error和exception有什么區別?
2.說出5個常見的RuntimeException?
3.throw和throws的區別?
4.Java中例外分類
5.如何自定義例外
6Java中例外處理
7.什么是Java反射機制?
8.舉例什么地方用到反射機制?
9.java反射機制的作用
10.Java反射機制類
11 .反射機制優缺點?
12.利用反射創建物件?

IO&NIO(22道)
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|圖文說明

多執行緒(100道題)
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

JVM(50道題)
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.類加裁程序?

Linux(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個欄位?

Mysql(50道題)
...............................
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(* )在不同引擎的實作方式?

Spring(50道題)

Mybatis(28道題)

Nginx(16道題)
1.什么是nginx?
2.nginx主要特征?
3.nginx常用命令?
4.作業模式及連接數上限?
5.nginx負載均衡幾種演算法?
6.nginx有幾種行程模型?
7.如何定義錯誤提示頁面?
8.如何精準匹配路徑?
9.路徑匹配優先級?
10.如何把請求轉發給后端應用服務器?
11.如何根據檔案型別設定過期時間?
12.禁止訪問某個目錄?
13.nginx負載均衡實作程序?
14.負載均衡配置?
15.設定超時時間?
16.開啟壓縮功能好處?壞處?

Redis(50道題)
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.什么是快取雪崩?處理問題?

Dubbo(36道題)
SpringBoot(30道題)
Kafka(25道題)
SpringCloud(35道題)

簡歷指導
需要領取這套1200+道面試題的朋友麻煩幫忙一鍵三連一下這篇文章+關注我,掃碼獲取!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/173048.html
標籤:其他
