架构师
其他
分布式系统
Java
分布式
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

java中高级

哈瑞

一线互联网行业 高级架构师

现任BAT公司某技术中心高级架构师;曾在美团点评、唯品会工作,从事广告平台、电商平台相关的架构设计与团队管理工作。
中科院软件研究所计算机专业硕士毕业,出版过2本著作:
在高并发高可用架构,业务建模,DDD领域,积累了10年工作经验,经历过游戏,社交,广告,电商等各种类型的项目先后出版两本书籍。曾任上海交大继续教育学院兼职讲师,教授Java与数据结构基础,网络与Web,曾任美团点评的校招面试官,搜索与推荐平台,电商运营平台,电商商品,库存体系 ,广告平台,数据中台。

服务过的企业:
广州赛意
深圳创维-RGB电子
招联消费金融
中移
酷开
银联

现任BAT公司某技术中心高级架构师;曾在美团点评、唯品会工作,从事广告平台、电商平台相关的架构设计与团队管理工作。 中科院软件研究所计算机专业硕士毕业,出版过2本著作: 在高并发高可用架构,业务建模,DDD领域,积累了10年工作经验,经历过游戏,社交,广告,电商等各种类型的项目先后出版两本书籍。曾任上海交大继续教育学院兼职讲师,教授Java与数据结构基础,网络与Web,曾任美团点评的校招面试官,搜索与推荐平台,电商运营平台,电商商品,库存体系 ,广告平台,数据中台。 服务过的企业: 广州赛意 深圳创维-RGB电子 招联消费金融 中移 酷开 银联

课程费用

5800.00 /人

课程时长

4

成为教练

课程简介

深入剖析Java中高级特性,涵盖泛型、反射、注解、动态代理等核心知识,并解析JDK9至20的新特性及协程技术。同时,聚焦Java并发基础与GC算法,助力学员构建高效、稳定的分布式系统架构。

目标收益

掌握Java泛型原理与应用,提升代码复用性和类型安全性。
深入理解反射与注解机制,实现灵活编程与框架开发。
学习并发编程精髓,构建高性能、高可用的Java应用。

培训对象

课程大纲

第一天 Java几大核心特性剖析1. 泛型 1.为什么需要泛型?为什么弱类型语言不需要泛型?
2.泛型类/泛型方法/泛型接口
3.泛型上下界
4.编程语言的协变、逆变、不变、泛型通配符、 PECS原则
5.泛型擦除原理、问题
2. 反射 1.反射与元编程
2.反射相关的API:Class/Field/Method/Parameter
3.反射典型的案例分析
4.反射和设计模式-工厂的结合
5.反射与泛型的结合
3. 注解 1.注解与注释的区别与联系
2.注解的用法:定义、使用、解析注解
3. 注解为什么必须和反射结合?
4. 注解的进阶用法
5. 注解的高级用法:元注解、注解的继承、注解的组合
6. 注解的典型案例
4. 动态代理 1.静态代理的2种实现方式
2.动态代理的几种实现方式
3.动态代理的典型案例
5. JDK9 - 20新特性 1. JDK各版本与LTS:OracleJDK、OpenJDK、KonaJDK
2. JDK9 - 20 各个版本的新特性,JDK的3 个LTS版本:JDK8, 11, 17
3. JDK8的主要进步,比如函数式编程
4. JDK11的主要进步,比如模块化
5. JDK17的主要进步,比如ZGC
6. 协程 1.Java协程发展史
2.C++/Go中,协程的大规模工程应用
3. 为什么大家都要搞协程?
4. 协程的实现原理
5. 协程的典型案例
第二天 Java并发基础 与 GC算法剖析
第1讲:多线程基础
线程的优雅关闭;
InterruptedException与interrupt();
synchronized关键字;
wait与notify;

volatile关键字;
重排序问题;
内存可见性问题;
重排序与内存可见性的关系;
JMM与happen-before ;

Linux内存屏障 ;
JDK内存屏障;

常用无锁编程实践
第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. 原理:数据分片;最终一致性;
3. 原理:伪共享与缓存行填充;
4. LongAdder核心实现原理
5. LongAccumulator实现原理
6. DoubleAdder/DoubleAccumulator实现原理
第3讲:Lock与Condition 1.锁的公平性vs.非公平性 ;
锁实现的基本原理 ;
阻塞队列与唤醒机制 ;
unlock()实现分析
2.类继承层次 ;
AQS的两对模板方法 ;
WriteLock公平vs.非公平实现 ;
ReadLock公平vs.非公平实现 ;
3.Condition与Lock的关系 ;
Condition的使用场景 ;
Condition实现原理 ;await()实现分析;
4.为什么引入StampedLock ;
“乐观读”的实现原理
悲观读/写:“阻塞”与“自旋”策略实现差异 ;
第4讲: GC - CMS剖析 1.GC算法的基本分类、背景知识(比如3色标记法、读写屏障)
2.对CMS算法的常见误解
3.Young GC – ParNew算法解析
4. Old GC – CMS算法解析
5. Full GC算法解析
第5讲:GC – G1剖析 1.G1相对CMS,改进的地方
2.G1与 CMS内存布局的对比
3.G1算法 – 年轻代解析
4.G1算法 – 年老代解析
第6讲:GC – ZGC剖析 1.ZGC相对 CMS/G1,先进性体现在哪?
2.ZGC核心技术 – 染色指针
3.ZGC算法解析
4.ZGC还有哪些不足?
第三天 Java并发编程 – 高级

第1课:同步工具类
Semaphore;
CountDownLatch; CyclicBarrier
使用场景;实现原理

Exchanger Phaser
使用场景;实现原理
第2课:并发容器 1.BlockingQueue
ArrayBlockingQueue PriorityBlockingQueue
2.BlockingQueue(续)
DelayQueue SynchronousQueue
3.BlockingDequeCopyOnWrite
CopyOnWriteArrayListCopyOnWriteArraySet
4.ConcurrentLinkedQueue/ Deque
使用场景与实现原理
5.ConcurrentHashMap
使用场景与实现原理
6.ConcurrentSkipListMap/Set
使用场景与实现原理
第3课:线程池与Future 1.线程池-实现原理剖析:线程池的实现原理;线程池的类继承体系;线程池的优雅关闭 ;任务的提交过程分析 线程池的4种拒绝策略 ;
2.Callable与Future:Callable与Runnable;Future的广泛用途;Future的实现原理
3.ScheduledThreadPool Executor:实现原理分析
4.Executors工具类与总结:实现原理分析;异步编程总结;
第4讲:ForkJoinPool 1.ForkJoinPool用法 ;工作窃取队列 ;状态变量
ctl解析
2.ForkJoinPool原理解析:阻塞栈Treiber Stack ;Worker线程的阻塞-唤醒机制任务的提交过程分析
3.ForkJoinPool原理解析(续1):工作窃取算法顺序锁 SeqLock ;ForkJoinTask的fork/join ;
4.ForkJoinPool原理解析(续2):join的层层嵌套 ;ForkJoinPool的优雅关闭
第5课:CompletableFuture 1.CompletableFuture使用场景:最简单的用法;提交任务;四种任务原型 ;CompletionStage接口 ;
2.CompletableFuture实现原理:CompletableFuture的构造: 任务类型的适配 ;任务的链式执行过程分析thenApply与thenApplyAsync的区别
3.CompletableFuture实现原理(续):任务的网状执行:有向无环图 ;内部的计算图分析 ;
第6课
JDK8以后对JUC包的改动
JUC包随Java版本发展的变化
1.JDK8相对JDK7,对并发包的改动
2.JDK11相对JDK8,对并发包的改动
3.JDK17相对JDK11,对并发包的改动
第四天 Java现网问题排查 与 GC调优

第1课 现网问题排查与解决入门
1. 现网问题排查的基本方法论
2. 问题与工具
第2课 内存泄漏 内存泄漏 - 排查方法与案例
1.dump与MAT工具
2.jemalloc/jeprof
3.NMT与jcmd
4.典型案例
第3课 CPU飙高 CPU飙高 - 排查方法与案例
1.Linux常见cpu相关命令、jstack
2.CPU火焰图
3.典型案例
第4课 其它问题与工具 1.阿里arthas工具
2.典型案例
第5课GC调优 1.GC调优的目标、方法论
2.GC算法深入解析
3.案例
第一天 Java几大核心特性剖析1. 泛型
1.为什么需要泛型?为什么弱类型语言不需要泛型?
2.泛型类/泛型方法/泛型接口
3.泛型上下界
4.编程语言的协变、逆变、不变、泛型通配符、 PECS原则
5.泛型擦除原理、问题
2. 反射
1.反射与元编程
2.反射相关的API:Class/Field/Method/Parameter
3.反射典型的案例分析
4.反射和设计模式-工厂的结合
5.反射与泛型的结合
3. 注解
1.注解与注释的区别与联系
2.注解的用法:定义、使用、解析注解
3. 注解为什么必须和反射结合?
4. 注解的进阶用法
5. 注解的高级用法:元注解、注解的继承、注解的组合
6. 注解的典型案例
4. 动态代理
1.静态代理的2种实现方式
2.动态代理的几种实现方式
3.动态代理的典型案例
5. JDK9 - 20新特性
1. JDK各版本与LTS:OracleJDK、OpenJDK、KonaJDK
2. JDK9 - 20 各个版本的新特性,JDK的3 个LTS版本:JDK8, 11, 17
3. JDK8的主要进步,比如函数式编程
4. JDK11的主要进步,比如模块化
5. JDK17的主要进步,比如ZGC
6. 协程
1.Java协程发展史
2.C++/Go中,协程的大规模工程应用
3. 为什么大家都要搞协程?
4. 协程的实现原理
5. 协程的典型案例
第二天 Java并发基础 与 GC算法剖析
第1讲:多线程基础
线程的优雅关闭;
InterruptedException与interrupt();
synchronized关键字;
wait与notify;

volatile关键字;
重排序问题;
内存可见性问题;
重排序与内存可见性的关系;
JMM与happen-before ;

Linux内存屏障 ;
JDK内存屏障;

常用无锁编程实践
第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. 原理:数据分片;最终一致性;
3. 原理:伪共享与缓存行填充;
4. LongAdder核心实现原理
5. LongAccumulator实现原理
6. DoubleAdder/DoubleAccumulator实现原理
第3讲:Lock与Condition
1.锁的公平性vs.非公平性 ;
锁实现的基本原理 ;
阻塞队列与唤醒机制 ;
unlock()实现分析
2.类继承层次 ;
AQS的两对模板方法 ;
WriteLock公平vs.非公平实现 ;
ReadLock公平vs.非公平实现 ;
3.Condition与Lock的关系 ;
Condition的使用场景 ;
Condition实现原理 ;await()实现分析;
4.为什么引入StampedLock ;
“乐观读”的实现原理
悲观读/写:“阻塞”与“自旋”策略实现差异 ;
第4讲: GC - CMS剖析
1.GC算法的基本分类、背景知识(比如3色标记法、读写屏障)
2.对CMS算法的常见误解
3.Young GC – ParNew算法解析
4. Old GC – CMS算法解析
5. Full GC算法解析
第5讲:GC – G1剖析
1.G1相对CMS,改进的地方
2.G1与 CMS内存布局的对比
3.G1算法 – 年轻代解析
4.G1算法 – 年老代解析
第6讲:GC – ZGC剖析
1.ZGC相对 CMS/G1,先进性体现在哪?
2.ZGC核心技术 – 染色指针
3.ZGC算法解析
4.ZGC还有哪些不足?
第三天 Java并发编程 – 高级

第1课:同步工具类
Semaphore;
CountDownLatch; CyclicBarrier
使用场景;实现原理

Exchanger Phaser
使用场景;实现原理
第2课:并发容器
1.BlockingQueue
ArrayBlockingQueue PriorityBlockingQueue
2.BlockingQueue(续)
DelayQueue SynchronousQueue
3.BlockingDequeCopyOnWrite
CopyOnWriteArrayListCopyOnWriteArraySet
4.ConcurrentLinkedQueue/ Deque
使用场景与实现原理
5.ConcurrentHashMap
使用场景与实现原理
6.ConcurrentSkipListMap/Set
使用场景与实现原理
第3课:线程池与Future
1.线程池-实现原理剖析:线程池的实现原理;线程池的类继承体系;线程池的优雅关闭 ;任务的提交过程分析 线程池的4种拒绝策略 ;
2.Callable与Future:Callable与Runnable;Future的广泛用途;Future的实现原理
3.ScheduledThreadPool Executor:实现原理分析
4.Executors工具类与总结:实现原理分析;异步编程总结;
第4讲:ForkJoinPool
1.ForkJoinPool用法 ;工作窃取队列 ;状态变量
ctl解析
2.ForkJoinPool原理解析:阻塞栈Treiber Stack ;Worker线程的阻塞-唤醒机制任务的提交过程分析
3.ForkJoinPool原理解析(续1):工作窃取算法顺序锁 SeqLock ;ForkJoinTask的fork/join ;
4.ForkJoinPool原理解析(续2):join的层层嵌套 ;ForkJoinPool的优雅关闭
第5课:CompletableFuture
1.CompletableFuture使用场景:最简单的用法;提交任务;四种任务原型 ;CompletionStage接口 ;
2.CompletableFuture实现原理:CompletableFuture的构造: 任务类型的适配 ;任务的链式执行过程分析thenApply与thenApplyAsync的区别
3.CompletableFuture实现原理(续):任务的网状执行:有向无环图 ;内部的计算图分析 ;
第6课
JDK8以后对JUC包的改动
JUC包随Java版本发展的变化
1.JDK8相对JDK7,对并发包的改动
2.JDK11相对JDK8,对并发包的改动
3.JDK17相对JDK11,对并发包的改动
第四天 Java现网问题排查 与 GC调优

第1课 现网问题排查与解决入门
1. 现网问题排查的基本方法论
2. 问题与工具
第2课 内存泄漏
内存泄漏 - 排查方法与案例
1.dump与MAT工具
2.jemalloc/jeprof
3.NMT与jcmd
4.典型案例
第3课 CPU飙高
CPU飙高 - 排查方法与案例
1.Linux常见cpu相关命令、jstack
2.CPU火焰图
3.典型案例
第4课 其它问题与工具
1.阿里arthas工具
2.典型案例
第5课GC调优
1.GC调优的目标、方法论
2.GC算法深入解析
3.案例

课程费用

5800.00 /人

课程时长

4

预约体验票 我要分享

近期公开课推荐

近期公开课推荐

活动详情

提交需求