?干貨分享,感謝您的閱讀!
(暫存篇---后續會刪除,完整版和持續更新見高頻面試題基本總結回顧(含筆試高頻算法整理))
備注:引用請標注出處,同時存在的問題請在相關博客留言,感謝!
一、基本面試流程回顧
總體上面試都是以自我介紹+項目介紹+項目細節/難點提問+基礎知識點考核+算法題這個流程下來的。
- 自我介紹+項目介紹+項目細節/難點提問-------這個主要看個人的經歷了,每個人都不一樣
- 基礎知識點考核---------還是可以去增強自己的,也是這次的主要的一些總結思路
- 算法題-----------一般都是LeetCode高頻題或者劍指offer高頻題,這個得在找工作之前的好好的練習。
二、基本高頻算法題展示
基本高頻算法考題總結如下,如有錯誤請告知,謝謝:
歸屬內容 | 對應總結鏈接 | 筆試定義 | 代表題目展示 |
數學思維相關考題 | 數學思維高頻考題 | Letcode高頻考題 | 眾數、快樂數、丑數、回文數、平方根、超級次方、二進制中1的個數等 |
字符串相關考題 | 字符串高頻考題 | Letcode高頻考題 | 最長公共子串、最長回文子串、最長無重復字符子串、最小覆蓋子串、字符串相乘、中文數字表達轉實際數字格式等 |
數組相關考題 | 數組高頻考題 | Letcode高頻考題 | 找到數組 A 元素組成的小于 n的最大整數、兩數之和、三數之和、搜索旋轉排序數組、只出現一次的數字、最大子序列、最長連續遞增序列、最長公共前綴等 |
散列相關考題 | 散列高頻考題 | Letcode高頻考題 | 重復字符的最長子串、字母異位詞分組、LRU緩存機制、重復元素、同構字符串等 |
棧相關考題 | 棧高頻考題 | Letcode高頻考題 | 有效的括號、最小棧、用棧實現隊列、用隊列實現棧、逆波蘭表達式求值、用數組實現一個棧、基本數學運算表達式求值等 |
隊列相關考題 | 隊列高頻考題 | Letcode高頻考題 | 用隊列實現棧、使用棧實現隊列、設計循環隊列、滑動窗口最大值、隊列的最大值、用數組實現一個隊列等 |
鏈表相關考題 | 鏈表高頻考題 | Letcode高頻考題 | 反轉鏈表、鏈表中環的檢測、鏈表中環的入口點、刪除鏈表中倒數第K個節點、兩個鏈表的第一個公共節點、鏈表的中間節點、合并兩個有序鏈表、刪除鏈表中的重復元素等 |
樹相關考題 | 樹高頻考題 | Letcode高頻考題 | 二叉樹的最大深度、對稱二叉樹、二叉樹的最近公共祖先、二叉樹的直徑、二叉樹的層平均值、二叉樹的鏡像、二叉樹的最大寬度、平衡二叉樹等 |
排序相關考題 | 排序算法高頻考題 | Letcode高頻考題 | 冒泡排序、雞尾酒排序、插入排序、選擇排序、快速排序、歸并排序、堆排序、Top K 問題分析、使用堆排序思想實現優先級隊列、計數排序、桶排序、基數排序等 |
劍指offer考題 | 劍指offer所有高頻考題 | 劍指offer考題匯總分析 | 劍指offer全部高頻題羅列 |
動態規劃考題 | 動態規劃高頻考題 | Letcode高頻考題 | 最大子序和、最長上升子序列、最長公共子序列、最大子數組乘積、編輯距離、單詞拆分、爬樓梯、股票買賣問題、最佳買賣股票時機含冷凍期等 |
圖論考題 | 圖論高頻考題(國內一般不考) | 進階分析考題 | 島嶼數量、網絡延遲時間、單源最短路徑、負權最短路徑問題、具有最小生成樹的連通圖的最小代價、找到最終的安全狀態等 |
大廠新考題 | 聚焦新版綜合編程能力面試考查匯總 | 大廠新考 | 重點考查綜合能力和理解能力等 |
三、基本面試題總結回顧
(一)Java高頻面試題整理
相關答案參考:https://blog.csdn.net/xiaofeng10330111/article/details/53034130備注:針對基本問題做一些基本的總結,不是詳細解答!1.HashMap和ConcurrentHashMap區別(必考)2. ConcurrentHashMap的數據結構(必考)3.高并發HashMap的環是如何產生的4.HashMap1.7與HashMap1.8的區別,從數據結構上、Hash值的計算上、鏈表數據的插入方法、內部Entry類的實現上分析?5.Hash1.7是基于數組...https://blog.csdn.net/xiaofeng10330111/article/details/53034130
考察方向分類:Java基礎高頻知識考點
1.基本類型和包裝類區別
2.實例方法和靜態方法有什么不一樣?
3.Java指向的是引用還是地址?怎么理解?(高頻考點)
4.Object類內的方法(高頻考點)
5.hashCode方法的作用?
6.Java中一個字符占多少個字節,擴展再問int、 long、double占多少字節?
7.Boolean占幾個字節?
8.Exception和Error
9.==和equals的區別?
10.String str="hello world"和String str=new String("hello world")的區別?(高頻考點)
11.StringBuffer和StringBuilder的區別是什么?性能對比?如何鑒定線程安全?(高頻考點)
12.StringBuffer 和 StringBuilder 底層怎么實現的?(高頻考點)
13.switch支持哪些數據類型?支持long么?(高頻考點)
14.創建一個類的實例都有哪些辦法?(高頻考點)
15.final、finnally、finalize的區別是什么?
16.Jdk1.8/Jdk1.7都分別新增了哪些特性?其他版本呢?(高頻考點)
17.簡單說下Lambda表達式,其解決了什么,相比java7的處理優化了什么?
18.有人說“Lambda能讓Java程序慢30倍”,你怎么看?
19.SpI和API區別是什么?SpI底層實現是什么?
20.深克隆和淺克隆?(考頻不多)
21.偽共享機制簡述分析
22.假設引用了一個第三方的jar 有個類和我自己寫的代碼類一樣,那么在類加載機制過程中是如何處理的?(高頻考點)
23.Java提供了哪些IO方式? NIO如何實現多路復用?
24.談談接口和抽象類有什么區別?
考察方向分類:Java集合框架高頻知識考點(高頻考點集中地)
1.HashMap相關put操作,get操作等流程?(高頻考點)
2.Hash為啥要擴容
3.HashMap如果我想要讓自己的Object作為K應該怎么辦?
4.Hashmap 線程不安全的原因(高頻考點)
?5.HashMap1.7與HashMap1.8的區別,從數據結構上、Hash值的計算上、鏈表數據的插入方法、內部Entry類的實現上分析?
6.HashSet和HashMap區別
7.Hash1.7是基于數組和鏈表實現的,為什么不用雙鏈表?HashMap1.8中引入紅黑樹的原因是?為什么要用紅黑樹而不是平衡二叉樹?(高頻考點)
8.HashMap、HashTable、ConcurrentHashMap的原理與區別?
9.HashMap和ConcurrentHashMap區別(高頻考點)
10. ConcurrentHashMap的數據結構(高頻考點)
11.高并發HashMap的環是如何產生的(高頻考點)
12.哪些集合是線程安全的?
13.Collections.SynchronizedCollection方法實現原理是什么?
14.Array和ArrayList有什么區別?使用時注意事項有哪些?
15.常用的集合類有哪些?比如List如何排序(最好說下底層上的實現)?(高頻考點)
16.ArrayList和LinkedList內部的實現大致是怎樣的?他們之間的區別和各自適應的場景是什么?
考察方向分類:多線程與并發編程高頻知識考點(高頻考點集中地)
1.進程和線程的區別,進程間如何通訊,線程間如何通訊?
2.Java中線程之間如何通信
3.并發和并行的區別
4.Java線程的狀態?細說一下BLOCKED和WAITING有什么區別?(高頻考點)
5.Java實現多線程的方式有哪些?(高頻考點)
6.Java處理多線程的方式有哪些?
7.Java程序中啟動一個線程是用run()還是start()?
8.Thread的start方法調用兩次會怎么樣?Thread是如何保證start方法調用只有一次生效?(高頻考點)
9.什么是守護線程?有什么用?
10.兩個線程如何串行執行?
11.可以運行時kill掉一個線程嗎?
12.Synchronized的實現原理(高頻考點)
13.volatile與synchronized的區別是什么?volatile作用(高頻考點)
14.synchronized和Lock的區別(高頻考點)
15.Atomic類如何保證原子性(CAS操作)(高頻考點)
16.AtomicInteger、AtomicBoolean這些類之所以在高并發時高效,共同的原因是?
17.CAS?CAS 有什么缺陷,如何解決?(高頻考點)
18.Java不可重入鎖與可重入鎖的區別如何理解?
19.無鎖 VS 偏向鎖 VS 輕量級鎖 VS 重量級鎖,解釋鎖升級?(高頻考點)
20.樂觀鎖 VS 悲觀鎖?公平鎖 VS 非公平鎖?獨享鎖 VS 共享鎖?
21.自旋鎖 VS 適應性自旋鎖,簡單介紹
22.死鎖發生的原因
23.用java 代碼實現一個死鎖用例,說說怎么解決死鎖問題?回到用例代碼下,如何解決死鎖問題呢?(高頻考點)
24.請實現讓10個任務同時并發啟動?
25.AQS理論的數據結構是什么樣的?(高頻考點)
26.ReentrantLock底層公平鎖和非公平鎖的原理(高頻考點)
27.多線程中sleep與wait的區別是什么?
28.notify和notifyAll區別?
29.除了用Object.wait和Object.notifyAll來實現線程間的交互外,你還會常用哪些來實現?
30.ThreadLocal的原理和實現(高頻考點)
31.ThreadLocal為什么要使用弱引用和內存泄露問題(高頻考點)
32.ThreadLocal怎么解決內存泄露的問題?(高頻考點)
33.為什么要使用線程池?
34.線程池的線程數量確定?狀態分析?關閉方式?
35.如何控制線程池線程的優先級
36.核心線程池ThreadPoolExecutor的參數/常見線程池的創建參數是什么樣的?(高頻考點)
37.new ThreadPoolExecutor(10,100,10,TimeUnit.MILLISECONDS,new LinkedBlockingQueue(10));一個這樣創建的線程池,當已經有10個任務在運行時,第11個任務提交到此線程池執行的時候會發生什么,為什么?
38.實現一個自定義的ThreadFactory的作用通常是?
39.常見的線程池創建和參數分析?(高頻考點)
40.ThreadPoolExecutor的工作流程(高頻考點)
41.ScheduledThreadPoolExecutor中的使用的是什么隊列?內部如何實現任務排序的?
42.線程池的運行邏輯,FixedThreadPool、CachedThreadPool的原理(高頻考點)
43.用Executors.newCachedThreadPool創建的線程池,在運行的過程中有可能產生的風險是?
44.阻塞隊列ArrayBlockingQueue、LinkedBlockingQueue分析(高頻考點)
45.請合理的使用Queue來實現一個高并發的生產/消費的場景,給些核心的代碼片段。
46.線程池關閉原理
47.JUC下的常見類的使用,take、poll的區別,put、offer的區別?
48.Future原理,其局限性是什么?并說說CompletableFuture核心原理?
49.你是否了解fork/join(基本思想)?在工作中是如何使用的?說說他們的優勢是什么?(高頻考點)
50.Java線程池的調優經驗有哪些?(線程池的合理配置)(高頻考點)
51.一個請求中,計算操作需要50ms,db操作需要100ms,對于一臺8核的機器來說,如果要求cpu利用率達到100%,如何設置線程數?(高頻考點)
52.如果系統中不同的請求對應的cpu時間和io時間都不同,那怎么設置線程數量?(高頻考點)
53.線程池核心數20,最大600,阻塞隊列200,當QPS200(注意是qps)的時候,請求是調第三方阻塞超時,請問怎么提高它的吞吐量(注意不能加機器)?(高頻考點)
54.當前線程池是200,線程單次處理請求20ms,那么理論上單節點的qps 是多少呢?
55.多線程對Long數據進行加和會存在什么問題?如何解決?
56.Netty 的線程機制是什么樣的?
考察方向分類:其他擴展高頻知識考點
1.LRU算法是怎么實現的?大致說明下(高頻考點)
2.后臺服務出現明顯“變慢”,談談你的診斷思路?(高頻考點)
3.你了解Java應用開發中的注入攻擊嗎?
4.在Java程序運行階段,可以用什么命令行工具來查看當前Java程序的一些啟動參數值,例如Heap Size等。
5.用什么命令行工具可以查看運行的Java程序的GC狀況,請具體寫出命令行格式。(高頻考點)
6.用什么工具,可以在Java程序運行的情況下跟蹤某個方法的執行時間,請求參數信息等,并請解釋下工具實現的原理。
7.當一個Java程序接收請求,很長時間都沒響應的話,通常你會怎么去排查這種問題?
8.NIO(New I/O)用到的組件有哪些?
9.Netty對比Java NIO做了什么優化?(必考)
(二)JVM相關面試問題整理
相關答案參考:https://blog.csdn.net/xiaofeng10330111/article/details/86516867對JVM重點知識點進行整理,同時這些主要的總結可用于高頻面試題https://blog.csdn.net/xiaofeng10330111/article/details/86516867
1.分析JVM運行時數據區域(必考)
2.簡單介紹一下Java內存模型(必考)
3.簡述內存分配與回收策略
4.垃圾回收機制(必考)
5.強、軟、弱、虛引用的區分?
6.Java 堆永久代的回收(該部分歸屬java7,大概率不會問了)
7.垃圾回收算法(必考)
8.Minor GC和Full GC觸發條件
9.Minor GC 和 Full GC 有什么不一樣嗎?
10.簡述GC中Stop the world(STW),并說出安全點
11.各垃圾回收器的特點及區別,怎么做選擇?
13.G1和CMS的比較
14.CMS垃圾回收器存在的問題及解決方案(必考)
15.講講CMS垃圾回收器?講講G1垃圾回收器?(必考)
16.簡述ZGC垃圾回收器(必考)
17.雙親委派模型
18.談談雙親委派模型的"破壞"
19.JDBC和雙親委派模型關系分析
20.JVM鎖優化和鎖膨脹過程(必考)
21.JVM中GC Root的選擇標準是什么?相關JVM的調優參數有哪些?在工作中怎么調優的?
22.JVM性能監控有哪些?
23.一個4核8G的服務器,初步設置JVM參數,如何分配?(必考)
24.ClassLoader如何工作的?
25.對象的創建過程是什么樣的?
26.Java管理內存、內存泄漏和泄漏的原因?(必考)
27.OOM說一下?怎么排查?哪些會導致OOM?(必考)
28.JVM虛擬機老年代什么情況下會發生gc,給你一個場景,一臺4核8G的服務器,每隔兩個小時就要出現一次老年代gc,現在有日志,怎么分析是哪里出了問題?
29.判定一個對象不可達要回收,舉個實際例子來說明。有沒有從代碼層面去直接分析一下?
(三)MySQL相關面試問題整理
相關答案在這里逐步增加:MySQL相關問題整理(可用作高頻面試題和查缺補漏)備注:針對基本問題做一些基本的總結,不是詳細解答!1.事務的基本要素2.事務隔離級別(必考)3.如何解決事務的并發問題(臟讀,幻讀)(必考)4.MVCC多版本并發控制(必考)5.為什么選擇B+樹作為索引結構(必考)6.索引B+樹的葉子節點都可以存哪些東西(必考)7.查詢在什么時候不走(預期中的)索引(必考)8.sql如何優化9.explain是如何解析sql的...https://blog.csdn.net/xiaofeng10330111/article/details/105361002
1.現有一個IP地址,你覺得在數據庫中以何種方式進行存儲最好?性能分析對比字符串存儲 vs 整數存儲?為什么數據庫通常推薦將IPv4地址存儲為32位整數而不是字符串的原因
2.事務的基本要素(高頻考點)
3.事務隔離級別(高頻考點)
4.如何解決事務的并發問題(臟讀、不可重復讀和幻讀)(高頻考點)
5.臟讀的表現和具體解決并發問題(必考)
6.不可重復讀的表現和具體解決并發問題(高頻考點)
7.幻讀的表現和具體解決并發問題(高頻考點)
8.簡述MVCC多版本并發控制(高頻考點)
9.從CRUD角度說一下InnoDB的MVCC實現機制
10.為什么選擇B+樹作為索引結構(高頻考點)
11.為什么平衡二叉樹(或紅黑樹)不適合作為索引?
12.總是談及索引,那索引的目的是什么?
13.簡單談談MYSQL Innodb索引的數據結構,并簡述B+樹的查找過程(高頻考點)
14.說說索引使用注意事項與數據類型選擇,或則說說MySQL常見索引
15.談談索引優化的思路(高頻考點)
16.聚簇索引與非聚簇索引的區別?(高頻考點)
17.InnoDB一棵B+樹可以存放多少行數據?可否對InnoDB存儲引擎B+樹的樹高進行推導
18.MyisAM索引與InnoDB索引相比較
19.查詢在什么時候不走(預期中的)索引(高頻考點)
20.SQL如何優化,給出思路(說出部分即可,一下也只是一些思路)
21.SQL執行順序是什么樣的?(高頻考點)
22.explain是如何解析sql的
23.order by原理
24.InnoDB的行鎖/表鎖(高頻考點)
25.說說行鎖算法(記錄鎖+間隙鎖+下一鍵鎖)(高頻考點)
26.myisam和innodb的區別,什么時候選擇myisam
27.binlog\redolog\undolog都是什么,起什么作用?(高頻考點)
28.數據庫的樂觀鎖與悲觀鎖的區別是什么?樂觀鎖常用的兩種實現方式是什么?
29.當前讀和快照讀
30.一條sql的執行過程?
31.數據庫什么時候決定分庫分表?怎么考慮的?
32.mysql 底層查詢b+樹流程(高頻考點)
33.設置主鍵的時候為啥是按1遞增的?有啥好處?
34.MySQL主從同步實現方式?有什么問題?如何解決?
35.什么是覆蓋索引?如果查詢主鍵id下覆蓋索引還生效嗎?(高頻考點)
36.使用explain 查看數據已經使用了索引,但還是查詢很慢,可能的原因是?
37.對于sql如下select a from T where b=23 and c>4 order by d,其如何建立索引可以使查詢高效,如何驗證?分析下(高頻考點)
38.1000萬的db數據分頁怎么處理?
39.DB搜索引擎的組成是什么?原理是什么?
基本SQL練習
1.查詢平均成績大于等于85的所有學生信息
2.有兩張表:訂單表有訂單號和產品id,產品表有產品id 和產品名稱,設計SQL實現返回產品名稱和每一項產品的總訂單數
3.查詢每個部門的員工數量和平均工資
4.查詢每個部門的最高工資和最低工資
5.查詢每個部門的員工數量和工資中位數
6.查詢每個商品類別的銷售數量和銷售總額
7.查詢每個商品類別的銷售數量和銷售總額,并按照銷售總額從高到低排序
8.查詢每個商品類別的銷售數量和銷售總額,并只顯示銷售總額排名前3的商品類別
(四)Redis相關面試問題整理
相關答案在這里逐步增加:Redis相關問題整理(可用作高頻面試題和查缺補漏)_張彥峰ZYF的博客-CSDN博客備注:針對基本問題做一些基本的總結,不是詳細解答!1.Redis在項目中的主要作用是是什么?怎么用的?(應用場景)2.Redis支持的數據類型(必考)3.zset跳表的數據結構(必考)4.Redis的數據過期策略(必考)5.Redis的LRU過期策略的具體實現6.如何解決Redis緩存雪崩,緩存穿透問題7.Redis的持久化機制(必考)8.Redis的管道pipel...https://blog.csdn.net/xiaofeng10330111/article/details/105360939
1.單線程的Redis為什么快?
2.Redis支持的數據類型(必考)
3.Redis和memcached的區別
4.Redis在項目中的主要作用是是什么?怎么用的?(必考)
5.Redis實現分布式鎖的思路方案(必考)
6.分析基于Redis的限流器實現
7.Redis和DB數據一致性處理(必考)
8.Redis的數據過期策略分析(必考)
9.Redis的LRU過期策略的具體實現(必考)
10.分析Redis緩存雪崩問題以及解決方案(必考)
11.分析Redis緩存穿透問題和解決方案(必考)
12.Redis的持久化機制分析(必考)
13.分析下Redis的管道pipeline
14.Redis集群容錯機制是什么樣的?(必考)
15.Redis集群中某個master節點掛了,后面流程怎么判斷?(必考)
16.高并發情況下,對于Redis的更新操作有哪些注意事項?
17.高并發下,先更新數據庫,再刪除緩存,存在啥問題,如何解決呢?
18.高并發情況下,先刪除緩存,再更新數據庫,這樣會有啥問題,解決方案是?
19.zset跳表的數據結構分析(必考)
20.展開說說你了解的跳表
21.Redis使用跳表不用B+樹的原因?
22.跳躍表和B+樹結構上有啥區別
23.Redis的緩存優化方向有哪些?你們怎么理解的?對熱點鍵的注意事項設計什么?
24.跳表(Skip List)三大問題舉例
25.Zset底層的數據結構分析,如何體現的高效?(必考)
26.Redis 6.0以后的線程模型
27.Redis集群模式,節點怎么通信的?滿足了CAP那兩點?
28.Redis分布式鎖實現上有啥問題缺陷?怎么解決?
29.如果是DB實現分布式鎖的話,主要思路是?有啥問題?怎么解決?
30.Redis 分布式鎖的問題缺以及優化思路
31.Redis 熱點key 的問題和優化處理
32.Redis中有一批key瞬間過期,為什么其它key的讀寫效率會降低?
33.Redis的zset底層什么時候是hash,什么時候是跳表?
34.Redis 數據結構有哪些,底層實現都是什么?
35.Redis 熱key 是什么,有什么問題,怎么發現,怎么解決?
36.Redis 中底層是跳表結構,那么插入和查詢一個數的流程如何?如果是單位查詢,流程又是如何實現的?
(五)Spring相關面試問題整理
相關答案在這里逐步增加:Spring相關高頻面試題整理_張彥峰ZYF的博客-CSDN博客備注:針對基本問題做一些基本的總結,不是詳細解答!1.Spring Boot與以前的Spring有什么區別?2.Spring Boot啟動加載過程是什么樣的?3.Spring的IOC/AOP的實現(必考)4.動態代理的實現方式(必考)是否使用過GCLB,和JDK的區別是什么?5.Spring如何解決循環依賴(三級緩存)(必考)6.Spring的@Transactional如...https://blog.csdn.net/xiaofeng10330111/article/details/105361028
1.Spring Boot與以前的Spring有什么區別?
2.Spring Boot啟動加載過程是什么樣的?
3.Spring的IOC/AOP的實現(必考)
4.動態代理的實現方式(必考)是否使用過CGLiB,和JDK的區別是什么?
5.何時使用JDK還是CGLiB?如何強制使用CGLIB實現AOP?
6.Spring在選擇用JDK還是CGLiB的依據是什么?CGlib比JDK快?
7.Spring如何解決循環依賴(三級緩存)(必考)
8.Spring中解決循環依賴為什么要用三級緩存,二級為什么不行呢?
9.spring能解決那些循環依賴、不能解決那些循環依賴,為什么?
10.Spring注入bean的方式有哪些(列舉下你使用過的注入Bean的方式)?
11.Spring的后置處理器分析
12.BeanFactory和ApplicationContext的聯系和區別
13.說說你對spring事務的理解?
14.Spring的@Transactional如何實現的(必考)
15.Spring的事務傳播級別
16.Spring的事務隔離級別
17.Spring的事務失效場景分析
18.Spring的事務失效原因分析(必考)
19.Spring Cloud Zuul網關的調優策略有哪些?怎么實現其高可用?Zuul和Gataway,你們項目中是怎么選擇的?項目中對Zuul網關層的要求是什么樣的?
20.Spring Cloud Eureka和Nacos對比?怎么做選擇?Eureka中高可用是怎么做的?進行的調優有哪些?原理是什么?
21.Spring Cloud 中常用的注解有哪些?怎么用的?
22.Spring Cloud中的組件有哪些?具體說說?微服務架構中用到的關鍵技術有哪些?
23.Spring Cloud Config配置架構是什么樣的?可視化怎么做的?設計的業務有哪些?
(五)網絡協議與編程IO相關面試問題整理
相關答案在這里逐步增加:HTTP相關高頻題整理_張彥峰ZYF的博客-CSDN博客備注:針對基本問題做一些基本的總結,不是詳細解答!1.HTTP有哪些方法?返回狀態碼?2.三次握手過程?第三條丟了會怎樣?有什么現象?3.HTTP報頭格式?如何解析HTTP報頭?4.TCP連接中的三次握手和四次揮手,四次揮手的最后一個ack的作用是什么,為什么要time wait,為什么是2msl?...https://blog.csdn.net/xiaofeng10330111/article/details/105361059
1.TCP三次握手過程?第三條丟了會怎樣?有什么現象?(高頻考點)
2.TCP連接中的四次揮手?四次揮手的最后一個ack的作用是什么?為什么要time wait,為什么是2msl?(高頻考點)
3.HTTP有哪些方法?返回狀態碼?
HTTP方法與描述:
HTTP狀態碼與描述:
4.GET方法與POST方法的區別
5.HTTP報頭格式是什么樣的?實際中如何解析HTTP報頭呢?
6.URI和URL的區別
URI(統一資源標識符)
URL(統一資源定位符)
區別:
7.瀏覽器發生302跳轉背后的邏輯?(高頻考點)
8.簡單說一下HTTP協議的交互流程?(高頻考點)
9.HTTP和HTTPS的差異?(高頻考點)
10.SSL/TLS的交互流程?
11.Rest和Http什么關系? 大家都說Rest很輕量,你對Rest風格如何理解?(高頻考點)
12.TCP的滑動窗口協議有什么用?講講原理。(高頻考點)
13.說一下HTTP的斷點續傳?解決方法是?
14.說說http協議的多線程下載原理以及實現步驟?有啥優勢?
15.什么是長連接和短鏈接?舉例說明(高頻考點)
長連接(Keep-Alive)
短連接
16.cookie和session解決什么問題,相同點和不同點?(高頻考點)
17.了解session集群解決方案,通用解決方案?(高頻考點)
18.HTTP的安全校驗主要有幾種?可以說說?(高頻考點)
19.epoll、select、poll原理
20.基于BIO實現的Server端,當建立了100個連接時,會有多少個線程?如果基于NIO,又會是多少個線程? 為什么?
21.通常來說基于NIO實現的Server端,會用多少個線程去處理IO事件,為什么?
(六)設計模式相關面試問題整理
1.MyBatis設計模式應用分析MyBatis設計模式應用分析_張彥峰ZYF的博客-CSDN博客對MyBatis中應用的一些設計模式的整體分析,主要從三方面進行展開分析:創建型設計模式+結構型設計模式+行為型設計模式,每一種都提煉源碼進行對應的分析詳解https://zyfcodes.blog.csdn.net/article/details/85330132
2.單例模式使用分析單例模式的使用總結_單例模式使用_張彥峰ZYF的博客-CSDN博客單例模式是指確保一個類在任何情況下都絕對只有一個實例,并提供一個全局訪問點。實現方式介紹分析:餓漢式單例模式+懶漢式單例模式(雙重檢查鎖)+靜態內部類實現單例模式+注冊式單例模式https://zyfcodes.blog.csdn.net/article/details/105652399
3.代理模式使用分析代理模式的使用總結_張彥峰ZYF的博客-CSDN博客目錄一、代理模式二、靜態代理(一)靜態代理(二)靜態代理簡單實現三、動態代理(一)動態代理(二)動態代理簡單實現四、動態代理原理分析五、InvocationHandler接口和Proxy類詳解六、JDK動態代理和CGLIB動態代理代碼示例比較與總結(一)定義創建用戶管理接口(二)用戶管理實現類,實現用戶管理接口(被代理的實現類)(三)采用JDK代...https://zyfcodes.blog.csdn.net/article/details/105633821
4.裝飾器模式使用分析裝飾器模式的使用總結_裝飾器模式實際運用_張彥峰ZYF的博客-CSDN博客一、裝飾器模式的概念及怎么用?1.基本概念和功能:裝飾器模式能夠實現從一個對象的外部來給對象添加功能,有非常靈活的擴展性,可以在對原來的代碼毫無修改的前提下,為對象添加新功能。除此之外,裝飾器模式還能夠實現對象的動態組合,借此我們可以很靈活地給動態組合的對象,匹配所需要的功能。2.舉例分析:假設現在有這樣一個需求,讓你設計一個裝修功能,用戶可以動態選擇不同的裝修功能來裝飾自己的房子...https://zyfcodes.blog.csdn.net/article/details/105608235
5.模板模式使用分析模版模式的應用實際舉例_模板模式應用場景實例_張彥峰ZYF的博客-CSDN博客模版模式應該是工作中最常用的設計模式之一,直白的講就是如果的一些處理方式是有一定的模版流程處理的,那么在應用中使用該模式在合適不過了。對于其基本的業務應用,我簡單寫了以下三個基本的通用模版(業務失敗重試機制、業務前置檢查流程模版、Thrift遠程調用處理模版)來展示,有問題的可以留言糾正,謝謝!https://zyfcodes.blog.csdn.net/article/details/123619576
6.工廠模式和策略模式的綜合使用分析工廠模式和策略模式的綜合使用_工廠模式和策略模式結合_張彥峰ZYF的博客-CSDN博客一、簡單的工廠模式了解與使用二、簡單的策略模式了解與使用三、工廠模式和策略模式的綜合使用https://zyfcodes.blog.csdn.net/article/details/106943391
7.狀態模式的使用分析狀態模式的使用總結_張彥峰ZYF的博客-CSDN博客狀態模式基本介紹與應用分析介紹,同時對于Spring-statemachine狀態機框架給出了應用,最后介紹在外賣營銷業務中的具體案例分析https://zyfcodes.blog.csdn.net/article/details/106080007
8.責任鏈模式(以及變種管道模式)使用分析責任鏈模式(以及變種管道模式)的應用案例_管道模式和責任鏈模式_張彥峰ZYF的博客-CSDN博客責任鏈在實際開發中的應用還是比較多的,特別是在營銷訂購系統、審核流轉換處理、任務流程處理系統等系統中,其實我們在開發中往往主要應用的主要無非是以下三個場景(起碼以我的平時開發的角度來看):一是無需太關心責任鏈中各處理流的順序的簡單使用;二是需要關注處理順序,按責任鏈條延續處理,每個處理節點均可對請求進行節點的處理, 或將其傳遞給鏈上的下個處理節點;三是在處理中和純的責任鏈模式在鏈上只會有一個處理器用于處理業務數據存在差異,需要進行管道模式采用多個處理器都會處理業務數據。針對以上場景進行業務舉例和代碼書寫https://zyfcodes.blog.csdn.net/article/details/123956717
(七)消息中間件相關面試問題整理
相關答案在這里逐步增加:消息中間件相關高頻面題整理_張彥峰ZYF的博客-CSDN博客備注:針對基本問題做一些基本的總結,不是詳細解答!1.用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是線程安全的嗎?2.MQ系統的數據如何保證不丟失?...https://blog.csdn.net/xiaofeng10330111/article/details/105361083
1.用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是線程安全的嗎?
2.消息中間件的組成有哪些?
3.消息中間件模式分類有哪些?(必考)
4.分析消息中間件的普遍優勢(必考)
5.消息中間件常用協議分析
6.消息隊列應用場景分析(必考)
7.Kafka數據如何保證不丟失?(必考)
8.Kafka如何保證消息按順序執行?(必考)
9.Kafka如何保證消息不重復消費?(必考)
10.Kafka如何保證消息隊列的高可用?(必考)
11.Kafka 如何保證可靠性?(必考)
12.Kafka的文件存儲機制
13.Kafka消息是采用Pull模式,還是Push模式?(必考)
14.Kafka是如何實現高吞吐率的?
15.Kafka判斷一個節點還活著的兩個條件?
16.Kafka采用的拉取模式還是推送模式?兩者有啥區別?
17.如果流量突增導致MQ積壓過高,該如何處理?
18. Kafka 什么情況下數據丟失?
19.Netty和kafka都是用了零拷貝,那么零拷貝究竟是怎么實現的?底層原理是?
20.導致MQ積壓的原因有哪些?怎么應對?
(八)業務系統及其他相關面試問題整理
相關答案在這里逐步增加:業務系統及其他相關面試問題整理備注:針對基本問題做一些基本的總結,不是詳細解答!1.遇到線上相關問題怎么排查?2.高并發系統的限流如何實現?3.高并發秒殺系統的設計?4.負載均衡如何設計?5.假如雙十一等一些促銷有高并發訪問量要來訪問我們的數據,怎么樣做到可靠的服務?6.一個黑名單集合,數據量很大,快速查詢一個值是否在集合里,怎么設計,布隆過濾器。7.常見的設計模式及應用場景。...https://blog.csdn.net/xiaofeng10330111/article/details/105361100
1.遇到線上相關問題怎么排查?
2.高并發系統的限流如何實現?
3.高并發秒殺系統的設計?
4.秒殺并發情況下庫存為負數問題分析
5.實現一套負載均衡架構,如何思考設計?考慮哪些主要內容呢?
6.假如雙十一等一些促銷有高并發訪問量要來訪問我們的數據,怎么樣做到可靠的服務?
7.一個黑名單集合,數據量很大,快速查詢一個值是否在集合里,怎么設計?
8.一個網站有 20 億 url 存在一個黑名單中,這個黑名單要怎么存?若此時隨便輸入一個 url,你如何快速判斷該 url 是否在這個黑名單中?并且需在給定內存空間(比如:500M)內快速判斷出。
9.設計題:錢包領券的架構設計。
10.春節紅包的架構設計和容量設計
11.設計一個多級分類的表,然后組裝數據返給前端
12.業務設計一個訂單下單的流程,需要考慮哪些問題和使用哪些技術?如果有狀態流轉的話如何保證其有序性?
13.設計題:設計一種聊天模式,在該模式下用戶A給用戶B發送消息,在B沒有回復消息前,A最多可以發送三條消息。實現思路是?具體實現是?
14.定時任務部署在多個服務器會重復執行,一般任務執行一次即可,如何設計保證可用性分析?
15.負載均衡的意義是?如何實現負載均衡呢?有哪些算法呢?4層負載均衡和7層負載均衡的區別是?
16.系統服務的冪等性實現分析?
17.怎么表達滑動窗口限流?
18.查詢接口調優,不能用緩存,要求實時性,怎么調優?
19.現在用戶要查詢一張表,當流控降級時,兜底方案應該是怎么樣的?
20.用戶下訂單,訂單按什么字段分表?分表之后,如果想按照某個時間段查詢指定時間段內的所有用戶的訂單怎么辦?
21.給定一個內存區域用來停車,車可能有貨車、轎車等,如何高效分配和設計?有哪些最優思考點?反思到程序的內存分配上,如何高效分配和管理內存呢?
22.給一個接口,入參是賬戶信息,出參是賬戶余額,問怎么設計接口?
23.學生選課系統做表設計分析,只聚焦在學生選課這個場景,最好說出表之間的關系分析
24.微博、微信朋友圈、頭條的資訊推薦、快手抖音的視頻推薦等,比如一條朋友圈狀態、一條微博、一條咨詢或一條短視頻等發布,對應用戶可以實時看到呢?
25.什么是讀擴散與寫擴散?有啥優缺點?
26.實現微信二維碼掃碼PC登錄設計?
27.微信客戶端之間怎么保持的連接?服務器怎么知道其在不在線?
28.連接池設計分析,從技術難點和實現上分析
29.熔斷器設計思路,具體說明實現難點和注意事項
30.如何設計一個訂單系統?
31.數據庫設計題:要求設計一個合理的數據庫模型,考慮數據庫結構、索引設計、數據分片、讀寫分離、數據同步等問題。
32.分布式系統設計題:要求設計一個分布式系統,包括分布式任務調度、分布式鎖、分布式ID生成等。
33.緩存設計題:要求設計一個高效的緩存系統,考慮緩存策略、緩存一致性、緩存穿透、緩存雪崩等問題。
34.基礎架構設計題:要求設計一個穩定高效的基礎架構,如負載均衡、高可用集群、服務發現與治理等。
35.微服務架構設計題:要求設計一個微服務架構,包括服務拆分、服務注冊與發現、服務調用等。
36.數據結構與算法設計題:要求設計一個高效的算法,如排序算法、查找算法、圖算法等。
37.項目中限流怎么做的?漏桶和令牌桶原理,使用的什么數據結構?并發下隊列是否有性能問題?
38.Rpc和消息隊列的優缺點,使用場景
39.如何設計rpc框架?你認為其相比其他框架的優點是什么?
40.一般討論一個系統或服務的技術難點主要從哪些方面分析?
41.做一個商品敏感詞系統所面臨的技術難點和解決方案有哪些呢?
42.在設計一個接口的時候,我們重點關注的點有哪些?
43.服務器的請求轉發了解嗎?具體講講
44.微博評論數可能不準確,如何解決這個問題,因為一般都千人千面的那個人看到的都不一樣
45.布隆過濾器為啥會誤判,舉例說明?
46.cpu 飄高的原因分析?生產環境中如何應對?