




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
、Java
(―).基礎
1.Java基本功
1.1.Java入門(基礎概念與常識)
1.1.「Java語言有哪些特點?
1.1.2.關于JVMJDK和JRE最詳細通俗的解答
.JVM
.JDKf[]JRE
1.1.3.OracleJDK和OpenJDK的對比
1.1.4.Java和C++的區(qū)別?
1.15什么是Java程序的主類應用程序和<1'程序的主類有何不同?
1.1.6.Java應用程序與〃隹序之間有哪些差別?
1.1.7.importjava和javax有什么區(qū)別?
1.1.8.為什么說Java語言編譯與解釋并存”?
1.2.Java語法
1.2.1.字符型常量和字符串常量的區(qū)別?
122.關于注釋?
1.2.3.標識符和關鍵字的區(qū)別是什么?
124.Java中有哪些常見的關鍵字?
1.2.5.自增自減運算符
1.2.6.continue,break、和return的區(qū)別是什么?
1.2.7.Java泛型了解么?什么是類型擦除?介紹一下常用的通配符?
1.2.8.==^Dequals的區(qū)另U
1.2.9.hashCode。與equals()
1.3.基本數(shù)據(jù)類型
1.3.1.Java中的幾種基本數(shù)據(jù)類型是什么?對應的包裝類型是什么?各自占用多少字節(jié)呢?
1.3.2.自動裝箱與拆箱
1.3.3.8種基本類型的包裝類和常量池
1.4.方法(函數(shù))
1.4.1.什么是方法的返回值?返回值在類的方法里的作用是什么?
1.4.2.為什么Java中只有值傳遞?
1.4.3.重載和重寫的區(qū)別
1.4.4.深拷貝vs淺拷貝
1.4.5.方法的四種類型
2.Java面向?qū)ο?/p>
2.1.類和對象
2.1.1.面向?qū)ο蠛兔嫦蜻^程的區(qū)別
2.1.2.構(gòu)造器Constructor是否可被override?
2.1.3.在Java中定義一個不做事且沒有參數(shù)的構(gòu)造方法的作用
2.1.4.成員變量與局部變量的區(qū)別有哪些?
2.1.5.創(chuàng)建一個對象用什么運算符?對象實體與對象引用有何不同?
2.1.6.一個類的構(gòu)造方法的作用是什么?若一個類沒有聲明構(gòu)造方法,該程序能正確執(zhí)行嗎?為什
么?
2.1.7.構(gòu)造方法有哪些特性?
2.1.8.在調(diào)用子類構(gòu)造方法之前會先調(diào)用父類沒有參數(shù)的構(gòu)造方法,其目的是?
2.1.9.對象的相等與指向他們的引用相等,兩者有什么不同?
2.2.面向?qū)ο笕筇卣?/p>
2.2.1.封裝
2.2.2.繼承
2.2.3.多態(tài)
2.3.修飾符
2.3.1.在一個靜態(tài)方法內(nèi)調(diào)用一個非靜態(tài)成員為什么是非法的?
2.3.2.靜態(tài)方法和實例方法有何不同
2.4.接口和抽象類
2.4.1.接口和抽象類的區(qū)別是什么?
2.5.其它重要知識點
2.5.1.StringStringBuffer和StringBuilder的區(qū)別是什么?String為什么是不可變的?
2.5.2.Object類的常見方法總結(jié)
2.5.3.==與equals(重要)
2.5.4.hashCode與equals(重要)
.hashCode()介紹
,為什么要有hashCode
2.5.43.hashCode()與equals()的相關規(guī)定
2.5.5.Java序列化中如果有些字段不想進行序列化,怎么辦?
2.5.6.獲取用鍵盤輸入常用的兩種方法
3.Java梭心、技術
3.1.集合
3.1.1.Collections工具類和Arrays工具類常見方法總結(jié)
3.2.異常
3.2.1.Java異常類層次結(jié)構(gòu)圖
3.2.2.Throwable類常用方法
3.2.3.try-catch-finally
3.2.4.使用try-with-resources來代替try-catch-finally
3.3.多編呈
3.3.1.簡述線程、程序、進程的基本概念.以及他們之間關系是什么?
3.3.2.線程有哪些基本狀態(tài)?
3.4.文件與1\0流
3.4.1.Java中I0流分為幾種?
.既然有了字節(jié)流,為什么還要有字符流?
.BIO,NIO,AIO有什么區(qū)別?
(二).容器
1.ArrayList
1.1ArrayList簡介
1.2ArrayList核心源碼
1.3ArrayList源碼分析
1.3.1System.arraycopyO和Arrays.copyOf()方法
1.3.2兩者聯(lián)系與區(qū)別
1.3.3ArrayList核心擴容技術
1.3.4內(nèi)部類
1.4ArrayList經(jīng)典Demo
2.LinkedList
2.1簡介
2.2內(nèi)部結(jié)構(gòu)分析
2.3LinkedList源碼分析
2.3.1構(gòu)造方法
2.3.2add方法
2.3.3根據(jù)位置取數(shù)據(jù)的方法
2.3.4根據(jù)對象得到索引的方法
2.3.5檢查鏈表是否包含某對象的方法:
2.3.6刪除方法
2.4LinkedList類常用方法測試
3.HashMap
3.1HashMap簡介
3.2底層數(shù)據(jù)結(jié)構(gòu)分析
3.2.1JDK1.8之前
3.2.2JDK1.8之后
3.3HashMap源碼分析
3.3.1構(gòu)造方法
3.3.2put方法
3.4get方法
3.5resize方法
3.6HashMap常用方法測試
(三).并發(fā)
1.并發(fā)容器
1.1JDK提供的并發(fā)容器總結(jié)
1.2ConcurrentHashMap
1.3CopyOnWriteArrayList
1.3.1CopyOnWriteArrayList簡介
1.3.2CopyOnWriteArrayList是如何做到的?
1.3.3CopyOnWriteArrayList讀取和寫入源碼簡單分析
1.4ConcurrentLinkedQueue
1.5BlockingQueue
1.5.1BlockingQueue簡單介紹
1.5.2ArrayBlockingQueue
1.5.3LinkedBlockingQueue
1.5.4PriorityBlockingQueue
1.6ConcurrentSkipListMap
2.線程池
2.1使用線程池的好處
2.2Executor
2.2.1簡介
2.2.2Executor框架結(jié)構(gòu)(主要由三大部分組成)
2.2.3Executor框架的使用示意圖
2.3(S^)ThreadPoolExecutor類簡單介紹
2.3.1ThreadPoolExecutor類分析
232推薦使用ThreadpoolExecutor構(gòu)造函數(shù)創(chuàng)建線程池
2.4(重要)ThreadPoolExecutor使用示例
2.4.1示例代碼:Runnable+ThreadpoolExecutor
2.4.2線程池原理分析
2.4.3幾個常見的對比
2.4.4加餐:Callable+ThreadpoolExecutor示例代碼
2.5幾種常見的線程池詳解
2.5.1FixedThreadPool
2.5.2SingleThreadExecutor
2.5.3CachedThreadPool詳解
2.6ScheduledThreadPoolExecutor詳解
2.6.1簡介
2.6.2運行機制
2.6.3ScheduledThreadPoolExecutor執(zhí)彳亍周期?的步9聚
2.7線程池大小確定
3.樂觀鎖與悲觀鎖
3.1何謂悲觀鎖與樂觀鎖
3.1.1悲觀鎖
3.1.2樂觀鎖
3.1.3兩種鎖的使用場景
3.2樂觀鎖常見的兩種實現(xiàn)方式
321.版本號機制
3.2.2.CAS算法
33樂觀鎖的缺點
3.3.1ABA問題
3.3.2循環(huán)時間長開銷大
3.3.3只能保證一個共享變量的原子操作
3.4CAS與synchronized的使用情景
4.Atomic
4.1Atomic原子類介紹
4.2基本類型原子類
4.2.1基本類型原子類介紹
4.2.2Atomiclnteger常見方法使用
4.2.3基本數(shù)據(jù)類型原子類的優(yōu)勢
4.2.4Atomiclnteger線程安全原理簡單分析
4.3數(shù)組類型原子類
4.3.1數(shù)組類型原子類介紹
4.3.2AtomidntegerArray常見方法使用
4.4引用類型原子類
4.4.1引用類型原子類介紹
4.4.2AtomicReference類使用示例
4.4.3AtomicStampedReference類使用示例
4.4.4AtomicMarkableReference類使用示例
4.5對象的屬性修改類型原子類
4.5.1對象的屬性修改類型原子類介紹
4.5.2AtomicIntegerFieldllpdater類使用示例
5.AQS
5.1AQS簡單介紹
5.2AQS原理
5.2.1AQS原理概覽
522AQS對資源的共享方式
5.2.3AQS底層使用了模板方法模式
5.3Semaphore(信號量)-允許多個線程同時訪問
5.4CountDownLatch(倒計時器)
5.4.1CountDownLatch的兩種典型用法
5.4.2CountDownLatch的使用示例
5.4.3CountDownLatch的不足
5.4.4CountDownLatch相常見面試題
5.5CydicBarrier(循環(huán)柵欄)
5.5.1CydicBarrier的應用場景
5.5.2CydicBarrier的使用示例
5.5.3CydicBarrier源碼分析
5.5.4CydicBarrier和CountDownLatch的區(qū)別
5.6ReentrantLock和ReentrantReadWriteLock
(四)JVM
1.Java內(nèi)存區(qū)域
1.1概述
1.2運行時數(shù)據(jù)區(qū)域
1.2.1程序計數(shù)器
1.2.2Java虛擬機棧
1.2.3本地方法棧
1.2.4堆
1.2.5方法區(qū)
方法區(qū)和永久代的關系
常用參數(shù)
為什么要將永久代(PermGen)替換為元空間(MetaSpace)呢?
126運行時常量池
1.2.7直接內(nèi)存
1.3HotSpot虛擬機對象探秘
1.3.1又掇的創(chuàng)建
1.3.2對象的內(nèi)存布局
1.33對象的訪問定位
1.4重點補充內(nèi)容
1.4.1String類和常量池
1.4.2Strings1=newString("abc");這句話創(chuàng)建了幾個字符串對象?
1.4.38種基本類型的包裝類和常量池
2.JVM垃圾回收
2.1揭開JVM內(nèi)存分配與回收的神秘面紗
2.1.1對象優(yōu)先在eden區(qū)分配
2.1.2大對象直接進入老年代
2.1.3長期存活的對象將進入老年代
2.1.4動態(tài)對象年齡判定
2.2對象已經(jīng)死亡?
2.2.1引用計數(shù)法
2.2.2可達性分析算法
2.2.3再談引用
2.2.4不可達的對象并非“非死不可”
2.2.5如何判斷一個常量是廢棄常量
2.2.6如何判斷一個類是無用的類
2.3垃圾收集算法
2.3.1標記-清除算法
2.3.2復制算法
2.3.3標1己整理算法
2.3.4分代收集算法
2.4垃圾收集器
2.4.1Serial收集器
2.4.2ParNew收集器
2.4.3ParallelScavenge收集器
2.4.4.SerialOld收集器
2.4.5ParallelOld收集器
2.4.6CMS收集器
2.4.7G1收集器
3.JDK監(jiān)控和故障處理工具
3.1JDK命令行工具
3.1.1jps:查看所有Java進程
3.1.2jstat:監(jiān)視虛擬機各種運行狀態(tài)信息
3.1.3jinfo:實時地查看和調(diào)整虛擬機各項參數(shù)
3.1.4jmap:生成堆轉(zhuǎn)儲快照
3.1.5jhat:分析heapdump文件
3.1.6jstack:生成虛擬機當前時刻的線程快照
3.2JDK可視化分析工具
3.2.1JConsoleiJava監(jiān)視與管理控制臺
3.2.2VisualVM:多合一故障處理工具
4.類文件結(jié)構(gòu)
4.1概述
4.2Class文件結(jié)構(gòu)總結(jié)
4.2.1魔數(shù)
4.2.2Class文件版本
4.2.3常量池
4.2.4訪問標志
4.2.5當前類索弓I,父類索引與接口索引集合
4.2.6字段表集合
4.2.7方法表集合
4.2.8屬性表集合
5.類加載過程
5.1劫口載過程
5.1.1力口載
5.1.2瞬正
5.1.3準備
5.1.4解析
5.1.5初始化
5.2卸載
6.類加載器
6.1回顧一下類加載過程
6.2類加載器總結(jié)
6.3雙親委派模型
6.3.1雙親委派模型介紹
6.3.2雙親委派模型實現(xiàn)源碼分析
6.3.3雙親委派模型的好處
6.3.4如果我們不想用雙親委派模型怎么辦?
6.4自定義類加載器
二、網(wǎng)絡
(-).計算機網(wǎng)絡知識
1.計算述
1.1基本術語
1.2重要知識點總結(jié)
2.物理層
2.1基本術語
2.2重要知識點總結(jié)
2.3最重要的知識點
2.3.1拓展:
2.3.2幾種常用的信道復用技術
2.3.3幾種常用的寬帶接入技術,主要是ADSL和FTTx
3.數(shù)據(jù)鏈路層
3.1基本術語
3.2重要知識點總結(jié)
3.3最重要的知識點
4.網(wǎng)絡層
4.1基本術語
4.2重要知識點總結(jié)
4.3最重要知識點
5.運輸層
5.1基本術語
5.2重要知識點總結(jié)
5.3最重要的知識點
6.應用層
6.1基本術語
6.2重要知識點總結(jié)
6.3最重要知識點總結(jié)
(-).HTTPS中的TLS
1.SSL與TLS
2.從網(wǎng)絡協(xié)議的角度理解HTTPS
3.從密碼學的角度理解HTTPS
3.1.TLS工作流程
3.2.密碼基礎
321.偽隨機數(shù)生成器
3.2.2.消息認證碼
3.2.3.數(shù)字簽名
3.2.4.公鑰密碼
3.2.5.證書
3.2.6.密碼小結(jié)
3.3.TLS使用的密碼技術
3.4.TLS總結(jié)
4.RSA簡單示例
三、Linux
(-).從認識操作系統(tǒng)開始
1.1操作系統(tǒng)簡介
1.2操作系統(tǒng)簡單分類
1.3操作系統(tǒng)的內(nèi)核
1.4操作系統(tǒng)的用戶態(tài)與內(nèi)核態(tài)
1.4.1為什么要有用戶態(tài)與內(nèi)核態(tài)?
1.4.2用戶態(tài)切換到內(nèi)核態(tài)的幾種方式
1.4.3物理內(nèi)存RAM(RandomAccessMemory隨機存儲器)
1.4.4虛擬內(nèi)存(VirtualMemory)
1.4.5Swap交換空間
(―).初探Linux
2.1Linux簡介
2.2Linux誕生簡介
2.3Linux的分類
(三)Linux文件系統(tǒng)概覽
3.1Linux文件系統(tǒng)簡介
3.2Inode
3.2.1lnode是什么?有什么作用?
3.3文件類型與目錄結(jié)構(gòu)
3.4Linux目錄樹
㈣Linux基本命令
4.1目錄切換命令
4.2目錄的操作命令(增刪改查)
4.3文件的操作命令(增刪改查)
4.4壓縮文件的操作命令
4.5Linux的權(quán)限命令
4.6Linux用戶管理
4.7Linux系統(tǒng)用戶組的管理
4.8其他常用命令
四、數(shù)據(jù)結(jié)構(gòu)與算法
(-).數(shù)據(jù)結(jié)構(gòu)(布隆過濾器)
1.什么是布隆過濾器?
2.布隆過濾器的原理介紹
3.布隆過濾器使用場景
4.通過Java編程手動實現(xiàn)布隆過濾器
5利用Google開源的Guava中自帶的布隆過濾器
6.Redis中的布隆過濾器
6.1介紹
6.2使用Docker安裝
6.3常用命令一覽
6.4實際使用
(二).算法
五,數(shù)據(jù)庫
(―).MySQL
1.基本操作
2.數(shù)據(jù)庫操作
3.表的操作
4.數(shù)據(jù)操作
5.字符集編碼
6.數(shù)據(jù)類型(列類型)
7.列屬性(列約束)
8.建表規(guī)范
9.SELECT
10.UNION
11.子查詢
12.連接查詢(join)
13.TRUNCATE
14.備份與我
15.視圖
16.事務(transaction)
17.鎖表
18.觸發(fā)器
19.SQ戰(zhàn)程
20.存儲過程
21.用戶和權(quán)限管理
22.表維護
23.雜項
(-),Redis
1.5種基本數(shù)據(jù)結(jié)構(gòu)
1.1Redis簡介
1.1.1Redis的優(yōu)點
1.1.2Redis的安裝
1.1.3測試本地Redis性能
1.2Redis五種基本數(shù)據(jù)結(jié)構(gòu)
1.2.1字符串string
1.2.2列表list
1.2.3字典hash
1.2.4集合set
1.2.5有序列表zset
2.翻歐表
2.10歐表簡介
2.1.1為什么使用跳躍表
2.1.2本質(zhì)是解決查找問題
2.1.3更進一步的跳躍表
2.2四歐表的實現(xiàn)
2.2.1隨機層數(shù)
2.2.2創(chuàng)建跳躍表
2.2.3插入節(jié)點實現(xiàn)
2.2.4節(jié)點刪除實現(xiàn)
2.2.5節(jié)點更新實現(xiàn)
2.2.6元素排名的實現(xiàn)
3.分布式鎖深入探究
3.1分布式鎖簡介
3.1.1為何需要分布式鎖
3.1.2Java中實現(xiàn)的常見方式
3.1.3Redis分布式鎖的問題
3.2Redis分布式鎖的實現(xiàn)
3.2.1代碼實現(xiàn)
4.Redlock分布式鎖
4.1什么是RedLock
4.2怎么在單節(jié)點上實現(xiàn)分布式鎖
4.3Redlock算法
4.4失敗重試
4.5放鎖
4.6性能、崩潰恢復和fsync
5.如何做可靠的分布式鎖,Redlock真的可行么
5.1用鎖保護資源
5.2使用Fencing(柵欄)使得鎖變安全
5.3使用時間來解決一致性
5.4用不可靠的時間打破Redlock
5.5Redlock的同步性假設
5.6結(jié)論
6.神奇的HyperLoglog解決統(tǒng)計問題
6.1HyperLogLog簡介
6.1.1關于基數(shù)統(tǒng)計
6.1.2基數(shù)統(tǒng)計的常用方法
6.1.3概率算法
6.2HyperLogLog原理
6.2.1代碼實驗
6.2.2更近一步:分桶平均
6.2.3真實的HyperLogLog
6.3Redis中的HyperLogLog實現(xiàn)
6.3.1密集型存儲結(jié)構(gòu)
6.3.2稀疏存儲結(jié)構(gòu)
6.3.3對象頭
6.4HyperLogLog的使用
7.億級數(shù)據(jù)過濾和布隆過濾器
7.1布隆過濾器簡介
7.1.1布隆過濾器是什么
7.1.2布隆過濾器的使用場景
7.2布隆過濾器原理解析
7.3布隆過濾器的使用
7.3.1布隆過濾器的基本用法
7.4布隆過濾器代碼實現(xiàn)
7.4.1自己簡單模擬實現(xiàn)
7.4.2手動實現(xiàn)參考
7.4.3使用Google開源的Guava中自帶的布隆過濾器
8.GeoHash查找附近的人
8.1使用數(shù)據(jù)庫實現(xiàn)查找附近的人
8.2GeoHash算法簡述
8.3在Redis中使用Geo
8.3.1增力口
8.3.2距離
8.3.3獲取元素彳立置
8.3.4獲取元素的hash值
8.3.5附近的公司
8.3.6注意事項
9.持久化
9.1持久化簡介
9.1.1持久化發(fā)生了什么|從內(nèi)存到磁盤
9.1.2如何盡可能保證持久化的安全
9.2Redis中的兩種持久化方式
9.2.1方式一:快照
9.2.2成二:AOF
9.2.3Redis4.0混合持久化
10.發(fā)布訂閱與Stream
10.1Redis中的發(fā)布/訂閱功能
10.1.1PubSub簡介
10.1.2快速體驗
10.1.3實現(xiàn)原理
10.1.4訂閱頻道原理
10.1.5訂閱模式原理
10.1.6PubSub的缺點
10.2更為強大的Stream|持久化的發(fā)布/訂閱系統(tǒng)
10.2.1消息ID和消息內(nèi)容
10.2.2增刪改查示例
1023獨立消費示例
1024創(chuàng)建消費者示例
1025組內(nèi)消費示例
1026QA1:Stream消息太多怎么辦?|Stream的上限
10.2.7QA2:PEL是如何避免消息丟失的?
10.2.8RedisStreamVsKafka
11」集群]入門實踐教程
11.1Redis集群概述
11.1.1Redis主從復制
11.1.2Redis哨兵
11.1.3Redis集群化
11.2主從復制
11.2.1主從復制主要的作用
11.2.2快速體驗
11.2.3實現(xiàn)原理簡析
11.3RedisSentinel哨兵
11.3.1快速體驗
11.3.2客戶端訪問哨兵系統(tǒng)代碼演示
11.3.3新的主服務器是怎樣被挑選出來的?
11.4Redis集群
11.4.1基本原理
11.4.2集群的主要作用
1143快速體驗
1145數(shù)據(jù)分區(qū)方案簡析
11.4.6節(jié)點通信機制簡析
1147數(shù)據(jù)結(jié)構(gòu)簡析
12.Redis數(shù)據(jù)類型、編碼、底層數(shù)據(jù)結(jié)構(gòu)
12.1Redis構(gòu)建的類型系統(tǒng)
12.1.1redisObject對象
12.1.2命令的類型檢查和多態(tài)
12.25種數(shù)據(jù)類型對應的編碼和數(shù)據(jù)結(jié)構(gòu)
12.2.1string
12.2.2listlist列表,它是簡單的字符串列表,你可以添加一個元素到列表的頭部,或者尾部。
12.2.3set
12.2.4zset
12.2.5hash
12.3內(nèi)存回收和內(nèi)存共享
六、系統(tǒng)設計
(―).RestFulAPI
1.重要概念
2.REST接口規(guī)范
2.1動作
2.2路徑(接口命名)
2.3過濾信息(Filtering)
2.4狀態(tài)碼(StatusCodes)
3.HATEOAS
(二).常用框架
1.Spring常見問題
1.1什么是Spring框架?
1.2列舉一些重要的Spring模塊?
1.3@RestControllervs?Controller
1.4SpringIOC&AOP
1.4.1談談自己對于SpringloC和AOP的理解
1.4.2SpringAOP和Aspect]AOP有什么區(qū)另!J?
1.5Springbean
1.5.1Spring中的bean的作用域有哪些?
1.5.2Spring中的單例bean的線程安全問題了解嗎?
1.5.3?Component和@Bean的區(qū)別是什么?
1.5.4將一個類聲明為Spring的bean的注解有哪些?
1.5.5###5.5Spring中的bean生命周期?
1.6SpringMVC
1.6.1說說自己對于SpringMVC了解?
1.6.2SpringMVC工作原理了解嗎?
1.7Spring框架中用到了哪些設計模式?
1.8Spring事務
1.8.1Spring管理事務的方式有幾種?
1.8.2Spring事務中的隔離級別有哪幾種?
1.8.3Spring事務中哪幾種事務傳播行為?
1.8.4@Transactional(rollbackFor=Exception.dass)注解了解嗎?
1.9JPA
1.9.1如何使用JPA在數(shù)據(jù)庫中非持久化一個字段?
2.Spring常用注解
2.1@SpringBootApplication
2.2SpringBean相關
2.2.1@Autowired
2.2.2Component,@Repository,@Service,?Controller
2.2.3@RestController
2.2.4@scope
2.2.5configuration
2.3處理常見的HTTP請求類型
2.3.1GET請求
2.3.2POST請求
2.3.3PUT請求
2.3.4DELETE請求
2.3.5PATCH請求
2.4前后端傳值
2.4.1?pathvariable和?RequestParam
2.4.2@RequestBody
2.5讀取配置信息
2.5.1@value(常用)
2.5.2?configurationproperties(常用)
2.5.3Propertysource(不常用)
2.6參數(shù)校驗
2.6.1一些常用的字段驗證的注解
2.6.2期正請求體(RequestBody)
2.6.33僉■正請求參數(shù)(PathVariables和RequestParameters)
2.7全局處理Controller層異常
2.8JPA相關
2.8.1創(chuàng)建表
2.8.2創(chuàng)建主鍵
2.8.3設置字段類型
2.8.4指定不持久化特定字段
2.8.5聲明大字段
2.8.6創(chuàng)建枚舉類型的字段
2.8.7增加審計功能
2.8.8刪除/修改數(shù)據(jù)
2.8.9關聯(lián)關系
2.9事務?Transactional
2.10json會處理
2.10.1過濾json健
2.10.2ISlWtjson數(shù)據(jù)
2.10.3扁平化對象
2.11測試相關
3.Spring事務
3.1什么是事務?
3.2事物的特性(ACID)了解么?
3.3詳談Spring對事務的支持
3.3.1.Spring支持兩種方式的事務管理
3.3.2Spring事務??妾口介紹
3.3.3事務屬性詳解
3.3.4?Transactional注解使用詳解
4.SpringIOC和AOP詳解
4.1什么是I0C
4.1.1為什么叫控制反轉(zhuǎn)
4.2I0C解決了什么問題
4.3I0C和DI的區(qū)別
4.4什么是AOP
4.5AOP解決了什么問題
4.6AOP為什么叫面向切面編程
5.Spring中Bean的作用域與生命周期
5.1前言
5.2bean的作用域
5.2.1singleton唯一bean實例
5.2.2prototype——每次請求都會創(chuàng)建一個新的bean實例
5.2.3request--每一次HTTP請求都會產(chǎn)生一新的bean,該bean僅在當前HTTPrequest內(nèi)
有效
5.2.4session--每一次HTTP請求都會產(chǎn)生一^新的bean,該bean僅在當前HTTPsession內(nèi)
有效
5.2.5globalSession
5.3bean的生命周期
5.3.1initialization和destroy
5.3.2實現(xiàn)*Aware接口在Bean中使用Spring框架的一些對象
5.3.3BeanPostProcessor
5.3.4總結(jié)
5.3.5單例管理的對象
5.3.6三彈例管理的對象
6.SpringMVC工作原理詳解
6.1先來看一下什么是MVC模式
6.2SpringMVC簡單介紹
6.3SpringMVC使用
6.4SpringMVC工作原理(重要)
6.5SpringMVC重要組件說明
6.6DispatcherServlet詳細解析
7.Spring中都用到了那些設計模式?
7.1控制反轉(zhuǎn)(I。。和依賴注入(DI)
7.2工廠設計模式
7.3單例設計模式
7.4代理設計模式
7.4.1代理模式在AOP中的應用
7.4.2SpringAOP和AspectJAOP有什么區(qū)別?
7.5模板方法
7.6觀察者模式
7.6.1Spring事件驅(qū)動模型中的三種角色
7.6.2Spring的事件流程總結(jié)
7.7適配器模式
7.7.1springAOP中的適配器模式
7.7.2springMVC中的適配器模式
7.8裝飾者模式
7.9總結(jié)
(三).認證授權(quán)(JWT、SSO)
1.JWT身份認證優(yōu)缺點分析以及常見問題解決方案
1.1Token認證的優(yōu)勢
1.1.1羽態(tài)
1.1.2有效避免了CSRF攻擊
1.1.3適合移動端應用
1.1.4單點登錄友好
1.2Token認證常見問題以及解決辦法
1.2.1注銷登錄等場景下token還有效
1.2.2token的續(xù)簽問題
1.3總結(jié)
2.SSO單點登錄
2.1前言
2.1.1SSO說明
2.1.2單點登錄系統(tǒng)的好處
2.1.3設計目標
2.2SSO設計與實現(xiàn)
2.2.1核心應用與依賴
2.2.2用戶登錄狀態(tài)的存儲與校驗
2.2.3用戶登錄/登錄校驗
2.2.4用戶登出
2.2.5跨域登錄、登出
2.3備注
(四).分布式
1.分布式相關概念入門
1.1分布式系統(tǒng)的經(jīng)典基礎理論
1.2分布式事務
1.3一致性協(xié)議/算法
1.4分布式存儲
1.5分布式計算
2.Dubbo
2.1重要的概念
2.1.1什么是Dubbo?
2.1.2什么是RPC?RPC原理是什么?
2.1.3為什么要用Dubb。?
2.1.4什么是分布式?
2.1.5為什么要分布式?
2.2Dubbo的架構(gòu)
2.2.1Dubbo的架構(gòu)圖解
2.2.2Dubbo工作原理
2.3Dubbo的負載均衡策略
2.3.1先來解釋一下什么是負載均衡
2.3.2再來看看Dubbo提供的負載均衡策略
2.3.3配置方式
2.4zookeeper宕yi^dubboMi^的情況
3.消息隊列其實很簡單
3.1什么是消息隊列
3.2為什么要用消息隊列
3.2.1通過異步處理提高系統(tǒng)性能俏U峰、減少響應所需時間)
3.2.2降!氐系統(tǒng)耦合性
3.3使用消息隊列帶來的一些問題
3.4JMSVSAMQP
3.4.1JMS
3.4.2AMQP
3.4.3JMSvsAMQP
3.5常見的消息隊列對比
4.RabbitMQ
4.1RabbitMQ介紹
4.1.1RabbitMQ簡介
4.1.2RabbitMQ核心概念
4.2安裝RabbitMq
4.2.1安裝erlang
4.2.2安裝RabbitMQ
5.RocketMQ
5.1消息隊列掃盲
5.1.1消息隊列為什么會出現(xiàn)?
5.1.2消息隊列能用來干1十么?
5.2RocketMQ是什么?
5.3隊列模型和主題模型
5.3.1隊列模型
5.3.2現(xiàn)模型
5.3.3RocketMQ中的消息模型
5.4RocketMQ的架構(gòu)圖
5.5如何解決順序消費、重復消費
551臉肖費
5.5.2重復消費
5.6分布式事務
5.7消息堆積問題
5.8回溯消費
5.9RocketMQ的刷盤機制
5.9.1同步刷盤和異步刷盤
5.9.2同步復制和異步復制
5.9.3存儲機制
5.10總結(jié)
6.Kafka
6.1Kafka簡介
6.1.1Kafka創(chuàng)建背景
6.1.2Kafka簡介
6.1.3Kafka基5出概念
6.2Kafka的設計與實現(xiàn)
6.2.1討論一:Kafka存儲在文件系統(tǒng)上
6.2.2討論二:Kafka中的底層存儲設計
6.2.3討論三:生產(chǎn)者設計概要
6.2.4討論四:消費者設計概要
6.2.5討論五:Kafka如何保證可靠性
6.3動手搭一個Kafka
6.3.1第一步:下載Kafka
6.3.2第二步:啟動服務
6.3.3第三步:發(fā)送消息
7.API網(wǎng)關
7.1背景
7.1.1什么是API網(wǎng)關
7.1.2為什么需要API網(wǎng)關
7.1.3統(tǒng)一API網(wǎng)關
7.2統(tǒng)一網(wǎng)關的設計
7.2.1異步化請求
7.2.2鏈式處理
7.2.3業(yè)務隔離
7.2.4請求限流
7.2.5熔斷降級
7.2.6泛化調(diào)用
7.2.7WS平臺
7.3總結(jié)
8.分布式ID
8.1數(shù)據(jù)庫自增ID
8.2數(shù)據(jù)庫多主模式
8.3號段模式
8.4雪花算法
8.5百度(uid-generator)
8.6美團(Leaf)
8.7總結(jié)
8.8Redis
9.限流的算法有哪些?
9.1固定窗口計數(shù)器算法
9.2滑動窗口計數(shù)器算法
9.3漏桶算法
9.4令牌桶算法
10.Zookeeper
10.1前言
10.2什么是ZooKeeper
10.2.1ZooKeeper的由來
10.2.2ZooKeeper概覽
10.2.3結(jié)合個人使用情況的講一下ZooKeeper
10.3關于ZooKeeper的一些重要概念
10.3.1重要概念總結(jié)
10.3.2會話(Session)
10.3.3Znode
10.3.4版本
10.3.5Watcher
10.3.6ACL
10.4ZooKeeper特點
10.5ZooKeeper設計目標
10.5.1簡單的數(shù)據(jù)模型
10.5.2可構(gòu)建集群
10.5.3順序訪問
10.5.4高性能
10.6ZooKeeper集群角色介紹
10.7ZooKeeper&ZAB協(xié)議&Paxos算法
10.7.1ZAB協(xié)議&Paxos算法
10.7.2ZAB協(xié)議介紹
10.7.3ZAB協(xié)議兩種基本的模式:崩潰恢復和消息廣播
10.8總結(jié)
(五).大型網(wǎng)站架構(gòu)
1.如何設計一個高可用系統(tǒng)?要考慮哪些地方?
1.1什么是高可用?可用性的判斷標準是啥?
1.2哪些情況會導致系統(tǒng)不可用?
1.3有哪些提高系統(tǒng)可用性的方法?
1.3.1注重代碼質(zhì)量,測試嚴格把關
1.3.2使用集群,減少單點故障
1.3.3限流
1.3.4超時和重試機制設置
1.3.5熔斷機制
1.3.6異步調(diào)用
1.3.7使用緩存
1.3.8其他
1.4總結(jié)
(六).微服務
1.SpringCloud
1.1什么是Springcloud
1.2SpringCloud的版本
1.3SpringCloud的服務發(fā)現(xiàn)框架——Eureka
1.4負載均衡之Ribbon
1.4.1什么是RestTemplate?
1.4.2為什么需要Ribbon?
1.4.3Nginx和Ribbon的對比
1.4.4Ribbon的幾種負載均衡算法
1.5什么是OpenFeign
1.6必不可少的Hystrix
1.6.1什么是Hystrix之熔斷和降級
1.6.2什么是Hystrix之其他
1.7彳翔員務網(wǎng)關一一Zuul
1.7.1Zuul的路由功能
1.7.2Zu3的過濾功能
1.7.3關于Zuul的其他
1.7.4為什么要使用進行配置管理?
1.7.5Config是什么
1.8引出SpringCloudBus
1.9總結(jié)
七、必會工具
(-).Git
1.版本控制
1.1什么是版本控制
1.2為什么要版本控制
1.3本地版本控制系統(tǒng)
1.4集中化的版本控制系統(tǒng)
1.5分布式版本控制系統(tǒng)
2.認識Git
2.1Git簡史
2.2Git與其他版本管理系統(tǒng)的主要區(qū)別
2.3Git的三種狀態(tài)
3.Git使用快速入門
3.1獲取Git倉庫
3.2記錄每次更新到倉庫
3.3f好的Git提交消息
3.4推送改動到遠程倉庫
3.5遠程倉庫的移除與重命名
3.6查看提交歷史
3.7撤銷操作
3.8分支
(二).Docker
1.認識容器
1.1什么是容器?
1.1.1先來看看容器較為官方的解釋
1.1.2再來看看容器較為通俗的解釋
1.2圖解物理機,虛擬機與容器
2.再來談談Docker的一些概念
2.1什么是Docker?
2.2Docker思想
2.3Docker容器的特點
2.4為什么要用Docker?
3.容器VS虛擬機
3.1兩者對比圖
3.2容器與虛擬機總結(jié)
3.3容器與虛擬機兩者是可以共存的
4.Docker基本概念
4.1鏡像(Image):一個特殊的文件系統(tǒng)
4.2容器(Container):鏡像運行時的實體
4.3倉庫(Repository):集中存放鏡像文件的地方
5.常見命令
5.1基本命令
5.2拉取鏡像
5.3刪除鏡像
6.BuildShipandRun
7.簡單了解一下Docker底層原理
7.1虛擬化技術
7.2Docker基于LXC虛擬容器技術
8.總結(jié)
八、面試指南
(-).程序員簡歷該怎么寫
1.為什么說簡歷很重要?
1.1先從面試前來說
1.2再從面試中來說
2.下面這幾點你必須知道
3.必須了解的兩大法則
3.1STAR法則(SituationTaskActionResult)
3.2FAB法貝U(FeatureAdvantageBenefit)
4.項目經(jīng)歷怎么寫?
5.專業(yè)技能該怎么寫?
6.排版注意事項
7.其他的一些小tips
(二).如何準備面試
1.如何獲取大廠面試機會?
2.面試前的準備
2.1準備自己的自我介紹
2.2搞清楚技術面可能會問哪些方向的問題
2.3休閑著裝即可
2.4隨身帶上自己的成績單和簡歷
2.5如果需要筆試就提前刷一些筆試題
2.6花時間一些邏輯題
2.7準備好自己的項目介紹
2.8提前準備技術面試
2.9面試之前做好定向復習
3.面試之后復盤
4.如何學習?學會各種框架有必要嗎?
4.1我該如何學習?
4.2學會各種框架有必要嗎?
(三)Java學習路線和方法推薦
1.Java基礎
2.操作系統(tǒng)與計算機網(wǎng)絡
3.數(shù)據(jù)結(jié)構(gòu)與算法
4.前端知識
5.MySQL
6.常用工具
7.常用框架
8.多線程的簡單使用
9.分布式
10.深入學習
11.微服務
12.總結(jié)
一■Java
(-).基礎
1.Java基本功
1.1.Java入門(基礎概念與常識)
1.1.1.Java語言有哪些特點?
1.簡單易學;
2.面向?qū)ο螅ǚ庋b,繼承,多態(tài));
3.平臺無關性(Java虛擬機實現(xiàn)平臺無關性);
4.可靠性;
5.安全性;
6.支持多線程(C++語言沒有內(nèi)置的多線程機制,因此必須調(diào)用操作系統(tǒng)的多線程功能來進行多線
程程序設計,而Java語言卻提供了多線程支持);
7.支持網(wǎng)絡編程并且很方便(Java語言誕生本身就是為簡化網(wǎng)絡編程設計的,因此Java語言不僅支
持網(wǎng)絡編程而且很方便);
8.編譯與
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024項目管理考試輔導材料試題及答案
- 廣告策劃中的危機公關處理考核試卷
- 財務數(shù)據(jù)解讀與應用試題及答案
- 陜西排水帶施工方案
- 針對新形勢的注冊會計師考試變革探討試題及答案
- 2024項目管理專業(yè)知識考題試題及答案
- 2024年項目成功的關鍵因素與應對方案試題及答案
- 打井前施工方案怎么寫
- 項目管理專業(yè)人士資格考試的備考經(jīng)驗試題及答案
- 電視機語音助手與智能交互技術考核試卷
- 船舶采購建造 投標方案(技術方案)
- 2024年初級養(yǎng)老護理員職業(yè)鑒定考試題庫(含答案)
- 模塊21.CR400AF型動車組轉(zhuǎn)向架 《高速鐵路動車組機械設備維護與檢修》教學課件
- AQ6111-2023個體防護裝備安全管理規(guī)范
- GGD交流低壓配電柜運行、維護說明書、安裝、操作手冊
- 多發(fā)性骨髓瘤腎損傷診治指南(2024版)
- 2024年中考數(shù)學反比例函數(shù)-選擇題(壓軸)(試題)
- 【渠道視角下伊利股份營運資金管理存在的問題及優(yōu)化建議探析9000字(論文)】
- 【語文】古詩詞誦讀《登快閣》教學課件 2023-2024學年統(tǒng)編版高中語文選擇性必修下冊
- 2024年江蘇省南通市通州區(qū)中考一模英語試卷
- (正式版)JBT 9229-2024 剪叉式升降工作平臺
評論
0/150
提交評論