架構(gòu)師
其他
分布式系統(tǒng)
Java
分布式
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

java中高級

哈瑞

一線互聯(lián)網(wǎng)行業(yè) 高級架構(gòu)師

?現(xiàn)任BAT公司某技術(shù)中心高級架構(gòu)師;曾在美團(tuán)點評、唯品會工作,從事廣告平臺、電商平臺相關(guān)的架構(gòu)設(shè)計與團(tuán)隊管理工作。
?中科院軟件研究所計算機(jī)專業(yè)碩士畢業(yè),出版過2本著作:
?在高并發(fā)高可用架構(gòu),業(yè)務(wù)建模,DDD領(lǐng)域,積累了10年工作經(jīng)驗,經(jīng)歷過游戲,社交,廣告,電商等各種類型的項目先后出版兩本書籍。曾任上海交大繼續(xù)教育學(xué)院兼職講師,教授Java與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),網(wǎng)絡(luò)與Web,曾任美團(tuán)點評的校招面試官,搜索與推薦平臺,電商運(yùn)營平臺,電商商品,庫存體系 ,廣告平臺,數(shù)據(jù)中臺。

服務(wù)過的企業(yè):
廣州賽意
深圳創(chuàng)維-RGB電子
招聯(lián)消費(fèi)金融
中移
酷開
銀聯(lián)

?現(xiàn)任BAT公司某技術(shù)中心高級架構(gòu)師;曾在美團(tuán)點評、唯品會工作,從事廣告平臺、電商平臺相關(guān)的架構(gòu)設(shè)計與團(tuán)隊管理工作。 ?中科院軟件研究所計算機(jī)專業(yè)碩士畢業(yè),出版過2本著作: ?在高并發(fā)高可用架構(gòu),業(yè)務(wù)建模,DDD領(lǐng)域,積累了10年工作經(jīng)驗,經(jīng)歷過游戲,社交,廣告,電商等各種類型的項目先后出版兩本書籍。曾任上海交大繼續(xù)教育學(xué)院兼職講師,教授Java與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),網(wǎng)絡(luò)與Web,曾任美團(tuán)點評的校招面試官,搜索與推薦平臺,電商運(yùn)營平臺,電商商品,庫存體系 ,廣告平臺,數(shù)據(jù)中臺。 服務(wù)過的企業(yè): 廣州賽意 深圳創(chuàng)維-RGB電子 招聯(lián)消費(fèi)金融 中移 酷開 銀聯(lián)

課程費(fèi)用

5800.00 /人

課程時長

4

成為教練

課程簡介

深入剖析Java中高級特性,涵蓋泛型、反射、注解、動態(tài)代理等核心知識,并解析JDK9至20的新特性及協(xié)程技術(shù)。同時,聚焦Java并發(fā)基礎(chǔ)與GC算法,助力學(xué)員構(gòu)建高效、穩(wěn)定的分布式系統(tǒng)架構(gòu)。

目標(biāo)收益

掌握J(rèn)ava泛型原理與應(yīng)用,提升代碼復(fù)用性和類型安全性。
深入理解反射與注解機(jī)制,實現(xiàn)靈活編程與框架開發(fā)。
學(xué)習(xí)并發(fā)編程精髓,構(gòu)建高性能、高可用的Java應(yīng)用。

培訓(xùn)對象

課程大綱

第一天 Java幾大核心特性剖析1. 泛型 1.為什么需要泛型?為什么弱類型語言不需要泛型?
2.泛型類/泛型方法/泛型接口
3.泛型上下界
4.編程語言的協(xié)變、逆變、不變、泛型通配符、 PECS原則
5.泛型擦除原理、問題
2. 反射 1.反射與元編程
2.反射相關(guān)的API:Class/Field/Method/Parameter
3.反射典型的案例分析
4.反射和設(shè)計模式-工廠的結(jié)合
5.反射與泛型的結(jié)合
3. 注解 1.注解與注釋的區(qū)別與聯(lián)系
2.注解的用法:定義、使用、解析注解
3. 注解為什么必須和反射結(jié)合?
4. 注解的進(jìn)階用法
5. 注解的高級用法:元注解、注解的繼承、注解的組合
6. 注解的典型案例
4. 動態(tài)代理 1.靜態(tài)代理的2種實現(xiàn)方式
2.動態(tài)代理的幾種實現(xiàn)方式
3.動態(tài)代理的典型案例
5. JDK9 - 20新特性 1. JDK各版本與LTS:OracleJDK、OpenJDK、KonaJDK
2. JDK9 - 20 各個版本的新特性,JDK的3 個LTS版本:JDK8, 11, 17
3. JDK8的主要進(jìn)步,比如函數(shù)式編程
4. JDK11的主要進(jìn)步,比如模塊化
5. JDK17的主要進(jìn)步,比如ZGC
6. 協(xié)程 1.Java協(xié)程發(fā)展史
2.C++/Go中,協(xié)程的大規(guī)模工程應(yīng)用
3. 為什么大家都要搞協(xié)程?
4. 協(xié)程的實現(xiàn)原理
5. 協(xié)程的典型案例
第二天 Java并發(fā)基礎(chǔ) 與 GC算法剖析
第1講:多線程基礎(chǔ)
線程的優(yōu)雅關(guān)閉;
InterruptedException與interrupt();
synchronized關(guān)鍵字;
wait與notify;

volatile關(guān)鍵字;
重排序問題;
內(nèi)存可見性問題;
重排序與內(nèi)存可見性的關(guān)系;
JMM與happen-before ;

Linux內(nèi)存屏障 ;
JDK內(nèi)存屏障;

常用無鎖編程實踐
第2講:Atomic類 1. JUC包的全貌
2. Java/Mysq1/Redis中的悲觀鎖與樂觀鎖
3. CAS詳解自旋與阻塞: AtomicInteger/Long/Boolean/Double
4. ABA問題 與 AtomicReference/AtomicStampedReference/AtomicMarkableReference
5.為什么需要FieldUpdater;
6. AtomicXXXArray的常見誤解

1. JDK 8 Striped64 與 LongAdder介紹
2. 原理:數(shù)據(jù)分片;最終一致性;
3. 原理:偽共享與緩存行填充;
4. LongAdder核心實現(xiàn)原理
5. LongAccumulator實現(xiàn)原理
6. DoubleAdder/DoubleAccumulator實現(xiàn)原理
第3講:Lock與Condition 1.鎖的公平性vs.非公平性 ;
鎖實現(xiàn)的基本原理 ;
阻塞隊列與喚醒機(jī)制 ;
unlock()實現(xiàn)分析
2.類繼承層次 ;
AQS的兩對模板方法 ;
WriteLock公平vs.非公平實現(xiàn) ;
ReadLock公平vs.非公平實現(xiàn) ;
3.Condition與Lock的關(guān)系 ;
Condition的使用場景 ;
Condition實現(xiàn)原理 ;await()實現(xiàn)分析;
4.為什么引入StampedLock ;
“樂觀讀”的實現(xiàn)原理
悲觀讀/寫:“阻塞”與“自旋”策略實現(xiàn)差異 ;
第4講: GC - CMS剖析 1.GC算法的基本分類、背景知識(比如3色標(biāo)記法、讀寫屏障)
2.對CMS算法的常見誤解
3.Young GC – ParNew算法解析
4. Old GC – CMS算法解析
5. Full GC算法解析
第5講:GC – G1剖析 1.G1相對CMS,改進(jìn)的地方
2.G1與 CMS內(nèi)存布局的對比
3.G1算法 – 年輕代解析
4.G1算法 – 年老代解析
第6講:GC – ZGC剖析 1.ZGC相對 CMS/G1,先進(jìn)性體現(xiàn)在哪?
2.ZGC核心技術(shù) – 染色指針
3.ZGC算法解析
4.ZGC還有哪些不足?
第三天 Java并發(fā)編程 – 高級

第1課:同步工具類
Semaphore;
CountDownLatch; CyclicBarrier
使用場景;實現(xiàn)原理

Exchanger Phaser
使用場景;實現(xiàn)原理
第2課:并發(fā)容器 1.BlockingQueue
ArrayBlockingQueue PriorityBlockingQueue
2.BlockingQueue(續(xù))
DelayQueue SynchronousQueue
3.BlockingDequeCopyOnWrite
CopyOnWriteArrayListCopyOnWriteArraySet
4.ConcurrentLinkedQueue/ Deque
使用場景與實現(xiàn)原理
5.ConcurrentHashMap
使用場景與實現(xiàn)原理
6.ConcurrentSkipListMap/Set
使用場景與實現(xiàn)原理
第3課:線程池與Future 1.線程池-實現(xiàn)原理剖析:線程池的實現(xiàn)原理;線程池的類繼承體系;線程池的優(yōu)雅關(guān)閉 ;任務(wù)的提交過程分析 線程池的4種拒絕策略 ;
2.Callable與Future:Callable與Runnable;Future的廣泛用途;Future的實現(xiàn)原理
3.ScheduledThreadPool Executor:實現(xiàn)原理分析
4.Executors工具類與總結(jié):實現(xiàn)原理分析;異步編程總結(jié);
第4講:ForkJoinPool 1.ForkJoinPool用法 ;工作竊取隊列 ;狀態(tài)變量
ctl解析
2.ForkJoinPool原理解析:阻塞棧Treiber Stack ;Worker線程的阻塞-喚醒機(jī)制任務(wù)的提交過程分析
3.ForkJoinPool原理解析(續(xù)1):工作竊取算法順序鎖 SeqLock ;ForkJoinTask的fork/join ;
4.ForkJoinPool原理解析(續(xù)2):join的層層嵌套 ;ForkJoinPool的優(yōu)雅關(guān)閉
第5課:CompletableFuture 1.CompletableFuture使用場景:最簡單的用法;提交任務(wù);四種任務(wù)原型 ;CompletionStage接口 ;
2.CompletableFuture實現(xiàn)原理:CompletableFuture的構(gòu)造: 任務(wù)類型的適配 ;任務(wù)的鏈?zhǔn)綀?zhí)行過程分析thenApply與thenApplyAsync的區(qū)別
3.CompletableFuture實現(xiàn)原理(續(xù)):任務(wù)的網(wǎng)狀執(zhí)行:有向無環(huán)圖 ;內(nèi)部的計算圖分析 ;
第6課
JDK8以后對JUC包的改動
JUC包隨Java版本發(fā)展的變化
1.JDK8相對JDK7,對并發(fā)包的改動
2.JDK11相對JDK8,對并發(fā)包的改動
3.JDK17相對JDK11,對并發(fā)包的改動
第四天 Java現(xiàn)網(wǎng)問題排查 與 GC調(diào)優(yōu)

第1課 現(xiàn)網(wǎng)問題排查與解決入門
1. 現(xiàn)網(wǎng)問題排查的基本方法論
2. 問題與工具
第2課 內(nèi)存泄漏 內(nèi)存泄漏 - 排查方法與案例
1.dump與MAT工具
2.jemalloc/jeprof
3.NMT與jcmd
4.典型案例
第3課 CPU飆高 CPU飆高 - 排查方法與案例
1.Linux常見cpu相關(guān)命令、jstack
2.CPU火焰圖
3.典型案例
第4課 其它問題與工具 1.阿里arthas工具
2.典型案例
第5課GC調(diào)優(yōu) 1.GC調(diào)優(yōu)的目標(biāo)、方法論
2.GC算法深入解析
3.案例
第一天 Java幾大核心特性剖析1. 泛型
1.為什么需要泛型?為什么弱類型語言不需要泛型?
2.泛型類/泛型方法/泛型接口
3.泛型上下界
4.編程語言的協(xié)變、逆變、不變、泛型通配符、 PECS原則
5.泛型擦除原理、問題
2. 反射
1.反射與元編程
2.反射相關(guān)的API:Class/Field/Method/Parameter
3.反射典型的案例分析
4.反射和設(shè)計模式-工廠的結(jié)合
5.反射與泛型的結(jié)合
3. 注解
1.注解與注釋的區(qū)別與聯(lián)系
2.注解的用法:定義、使用、解析注解
3. 注解為什么必須和反射結(jié)合?
4. 注解的進(jìn)階用法
5. 注解的高級用法:元注解、注解的繼承、注解的組合
6. 注解的典型案例
4. 動態(tài)代理
1.靜態(tài)代理的2種實現(xiàn)方式
2.動態(tài)代理的幾種實現(xiàn)方式
3.動態(tài)代理的典型案例
5. JDK9 - 20新特性
1. JDK各版本與LTS:OracleJDK、OpenJDK、KonaJDK
2. JDK9 - 20 各個版本的新特性,JDK的3 個LTS版本:JDK8, 11, 17
3. JDK8的主要進(jìn)步,比如函數(shù)式編程
4. JDK11的主要進(jìn)步,比如模塊化
5. JDK17的主要進(jìn)步,比如ZGC
6. 協(xié)程
1.Java協(xié)程發(fā)展史
2.C++/Go中,協(xié)程的大規(guī)模工程應(yīng)用
3. 為什么大家都要搞協(xié)程?
4. 協(xié)程的實現(xiàn)原理
5. 協(xié)程的典型案例
第二天 Java并發(fā)基礎(chǔ) 與 GC算法剖析
第1講:多線程基礎(chǔ)
線程的優(yōu)雅關(guān)閉;
InterruptedException與interrupt();
synchronized關(guān)鍵字;
wait與notify;

volatile關(guān)鍵字;
重排序問題;
內(nèi)存可見性問題;
重排序與內(nèi)存可見性的關(guān)系;
JMM與happen-before ;

Linux內(nèi)存屏障 ;
JDK內(nèi)存屏障;

常用無鎖編程實踐
第2講:Atomic類
1. JUC包的全貌
2. Java/Mysq1/Redis中的悲觀鎖與樂觀鎖
3. CAS詳解自旋與阻塞: AtomicInteger/Long/Boolean/Double
4. ABA問題 與 AtomicReference/AtomicStampedReference/AtomicMarkableReference
5.為什么需要FieldUpdater;
6. AtomicXXXArray的常見誤解

1. JDK 8 Striped64 與 LongAdder介紹
2. 原理:數(shù)據(jù)分片;最終一致性;
3. 原理:偽共享與緩存行填充;
4. LongAdder核心實現(xiàn)原理
5. LongAccumulator實現(xiàn)原理
6. DoubleAdder/DoubleAccumulator實現(xiàn)原理
第3講:Lock與Condition
1.鎖的公平性vs.非公平性 ;
鎖實現(xiàn)的基本原理 ;
阻塞隊列與喚醒機(jī)制 ;
unlock()實現(xiàn)分析
2.類繼承層次 ;
AQS的兩對模板方法 ;
WriteLock公平vs.非公平實現(xiàn) ;
ReadLock公平vs.非公平實現(xiàn) ;
3.Condition與Lock的關(guān)系 ;
Condition的使用場景 ;
Condition實現(xiàn)原理 ;await()實現(xiàn)分析;
4.為什么引入StampedLock ;
“樂觀讀”的實現(xiàn)原理
悲觀讀/寫:“阻塞”與“自旋”策略實現(xiàn)差異 ;
第4講: GC - CMS剖析
1.GC算法的基本分類、背景知識(比如3色標(biāo)記法、讀寫屏障)
2.對CMS算法的常見誤解
3.Young GC – ParNew算法解析
4. Old GC – CMS算法解析
5. Full GC算法解析
第5講:GC – G1剖析
1.G1相對CMS,改進(jìn)的地方
2.G1與 CMS內(nèi)存布局的對比
3.G1算法 – 年輕代解析
4.G1算法 – 年老代解析
第6講:GC – ZGC剖析
1.ZGC相對 CMS/G1,先進(jìn)性體現(xiàn)在哪?
2.ZGC核心技術(shù) – 染色指針
3.ZGC算法解析
4.ZGC還有哪些不足?
第三天 Java并發(fā)編程 – 高級

第1課:同步工具類
Semaphore;
CountDownLatch; CyclicBarrier
使用場景;實現(xiàn)原理

Exchanger Phaser
使用場景;實現(xiàn)原理
第2課:并發(fā)容器
1.BlockingQueue
ArrayBlockingQueue PriorityBlockingQueue
2.BlockingQueue(續(xù))
DelayQueue SynchronousQueue
3.BlockingDequeCopyOnWrite
CopyOnWriteArrayListCopyOnWriteArraySet
4.ConcurrentLinkedQueue/ Deque
使用場景與實現(xiàn)原理
5.ConcurrentHashMap
使用場景與實現(xiàn)原理
6.ConcurrentSkipListMap/Set
使用場景與實現(xiàn)原理
第3課:線程池與Future
1.線程池-實現(xiàn)原理剖析:線程池的實現(xiàn)原理;線程池的類繼承體系;線程池的優(yōu)雅關(guān)閉 ;任務(wù)的提交過程分析 線程池的4種拒絕策略 ;
2.Callable與Future:Callable與Runnable;Future的廣泛用途;Future的實現(xiàn)原理
3.ScheduledThreadPool Executor:實現(xiàn)原理分析
4.Executors工具類與總結(jié):實現(xiàn)原理分析;異步編程總結(jié);
第4講:ForkJoinPool
1.ForkJoinPool用法 ;工作竊取隊列 ;狀態(tài)變量
ctl解析
2.ForkJoinPool原理解析:阻塞棧Treiber Stack ;Worker線程的阻塞-喚醒機(jī)制任務(wù)的提交過程分析
3.ForkJoinPool原理解析(續(xù)1):工作竊取算法順序鎖 SeqLock ;ForkJoinTask的fork/join ;
4.ForkJoinPool原理解析(續(xù)2):join的層層嵌套 ;ForkJoinPool的優(yōu)雅關(guān)閉
第5課:CompletableFuture
1.CompletableFuture使用場景:最簡單的用法;提交任務(wù);四種任務(wù)原型 ;CompletionStage接口 ;
2.CompletableFuture實現(xiàn)原理:CompletableFuture的構(gòu)造: 任務(wù)類型的適配 ;任務(wù)的鏈?zhǔn)綀?zhí)行過程分析thenApply與thenApplyAsync的區(qū)別
3.CompletableFuture實現(xiàn)原理(續(xù)):任務(wù)的網(wǎng)狀執(zhí)行:有向無環(huán)圖 ;內(nèi)部的計算圖分析 ;
第6課
JDK8以后對JUC包的改動
JUC包隨Java版本發(fā)展的變化
1.JDK8相對JDK7,對并發(fā)包的改動
2.JDK11相對JDK8,對并發(fā)包的改動
3.JDK17相對JDK11,對并發(fā)包的改動
第四天 Java現(xiàn)網(wǎng)問題排查 與 GC調(diào)優(yōu)

第1課 現(xiàn)網(wǎng)問題排查與解決入門
1. 現(xiàn)網(wǎng)問題排查的基本方法論
2. 問題與工具
第2課 內(nèi)存泄漏
內(nèi)存泄漏 - 排查方法與案例
1.dump與MAT工具
2.jemalloc/jeprof
3.NMT與jcmd
4.典型案例
第3課 CPU飆高
CPU飆高 - 排查方法與案例
1.Linux常見cpu相關(guān)命令、jstack
2.CPU火焰圖
3.典型案例
第4課 其它問題與工具
1.阿里arthas工具
2.典型案例
第5課GC調(diào)優(yōu)
1.GC調(diào)優(yōu)的目標(biāo)、方法論
2.GC算法深入解析
3.案例

課程費(fèi)用

5800.00 /人

課程時長

4

預(yù)約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求