极客大学java进阶训练营

什么是高性能?


大家思考一下,什么是高性能?
高并发用户(Concurrent Users)
高吞吐量(Throughput)
低延迟(Latency


高性能的另一面


如果实现了高性能,有什么副作用呢?
系统复杂度 x10以上
建设与维护成本++++
故障或 BUG 导致的破坏性 x10以上

应对策略


稳定性建设(混沌工程):
1、容量预估
2、爆炸半径
3、工程方面积累与改进

2. Netty 如何实现高性能 网盘分享

v  15123957473

模块一:JVM 进阶 - Java开发者大厂面试必知必会

1. 从 0 掌握 JVM 关键技术,了解核心知识;

2. 全面了解各类 GC 算法的原理和特性,洞悉相关原理;

3. 全面学习常见的 JVM 分析调优工具,上手十八般武艺;

4. 一线大厂 JVM 面试题全面剖析,助力拿到心仪 Offer。

学习和工作中的痛点

1. 没有经过体系化 JVM 学习,不懂原理,做不到知其然知其所以然;

2. 不熟悉 JVM 工具和方法,遇到问题不知道从何下手、如何分析和解决问题;

3. 缺乏实际场景的练习,每次看看书上的知识就忘,理解不深,无法做到融会贯通;

 V 15123957473 欢迎技术交流和分享

4. 在面试过程中十回有九回都遇到问 JVM 理论和分析调优的问题,每次都很难让面试官满意。

通过学习掌握的核心能力

1. 夯实基础:掌握 JVM 的基础知识和常用工具,了解一般原理,知道从什么地方着手分析问题;

2. 深入学习:掌握各类 GC 算法的一般原理,知道如何根据实际需要选择使用合适的 GC 策略;

3. 分析问题:掌握 GC 日志、线程、内存等维度的分析技巧,知道排查问题和优化系统的套路;

4. 积累经验:了解常见的分析调优经验,熟悉常见的面试问题和技巧,彻底学会 JVM 知识。

详细内容

1. JVM 基础知识、Java 字节码技术、JVM 类加载器、JVM 内存模型、JVM 启动参数详解;

2. JDK 内置命令行工具、JDK 内置图形界面工具、JDWP 简介、JMX 与相关工具;

3. 常见的 JVM GC 算法(Parallel GC/CMS GC/G1 GC)基本原理和特点;

4. 新一代 GC 算法(Java11 ZGC/Java12 Shenandoah) 和 Oracle GraalVM;

5. GC 日志解读与分析、JVM 的线程堆栈等数据分析、内存 dump 和内存分析工具;

6. fastThread 相关工具以及面临复杂问题时的几个高级工具的使用;

7. JVM 问题排查分析的常用手段、性能调优的最佳实践经验等;

8. JVM 相关的常见面试问题必知必会、全面分析。

 V 15123957473 欢迎技术交流和网盘分享

模块二 NIO 技术 - 构建高吞吐服务器的终极武器

1. 理解 NIO 的相关概念和原理,了解核心知识;

2. 全面掌握 Netty 相关的功能特性,掌握 Netty 的技术原理;

3. 全面学会使用 Netty 技术编程,能够写出高效服务器端代码;

4. 掌握常用的性能压测技术和相关工具,能够压测 HTTP 接口性能。

学习和工作中的痛点

1. 不理解 NIO 相关概念和技术点,搞不清原理,沟通和面试时无法准确表达;

2. 缺乏实际场景的练习,对 Netty 的使用和原理不熟悉,难以应用到工作中;

3. 不会使用 Netty 做高性能服务端编程,对性能相关指标和数据没有概念。

通过学习掌握的核心能力

1. 夯实基础:掌握 NIO 相关的知识和技术,能知道各种技术有什么优缺点,适用于什么场景;

2. 深入学习:熟练掌握 Netty/NIO 编程,能够设计实现一个高性能 HTTP 服务器/ API 网关;

3. 积累经验:了解常见的性能相关概念和压测入门,对性能指标有清晰概念,能够简单地量化分析。

详细内容

1. 同步/异步、阻塞/非阻塞、BIO、NIO、AIO、Reactor/Proactor;

2. ByteBuff/Acceptor/Channel/Handler、NioEventLoopGroup/EventLoop、bossGroup/workerGroup;

3. Netty 的启动和执行过程、线程模型、事件驱动、服务端和客户端的使用方式;

4. 常见的 API Gateway/HTTP Server、SEDA 原理、业务 API 网关的功能和结构;

5. Throughout/TPS/QPS、Latency/P99/P95/P90、ApacheBench/Wrk/JMeter/LoadRunner。

模块三:并发编程 - 多核处理器时代高性能的秘诀

教学目标

1. 学会多线程、高并发相关概念和技术,了解并发编程的核心知识;

2. 全面了解并发的相关技术的原理和用途,洞悉技术原理和相互关系;

3. 熟练掌握 Java 的多线程、并发包中各个类的使用,上手十八般武艺。

学习和工作中的痛点

1. 没有经过系统性学习并发编程,搞不清楚技术原理,写不出一个良好的多线程/异步代码;

2. 不熟悉 Java 的各个多线程工具和方法,遇到多线程问题常常束手无措,不会分析解决问题;

3. 缺乏实际场景的练习,平时没怎么用到多线程和并发,导致死记硬背的概念总是记不住。

通过学习掌握的核心能力

1. 夯实基础:系统掌握 Java 多线程和并发编程的技术原理和知识点,写出优秀的并发代码;

2. 深入学习:熟练应用各种并发工具,了解在什么情况下使用哪些具体的技术和方法;

3. 分析问题:掌握常见的多线程和并发问题分析技巧,知道排查一般问题的具体步骤;

4. 积累经验:构建完整全面的并发编程知识体系,熟悉常见的面试问题和技巧,彻底掌握 Java 并发编程知识。

详细内容

1. Java 多线程基础:线程、锁、synchronized、volatile/final、sleep/await/notify/fork/join;

2. Java 并发包基础:线程池 Executor、AQS/CAS、Atomic 原子操作、Lock/ReadWriteLock/Condition、Callable/Future;

3. Java 并发容器与工具:BlockingQueue/CopyOnWriteList/ConcurrentHashMap、CountDownLatch/CyclicBarrier/Semaphore等;

4. 其他:万金油 ThreadLocal,化繁为简 Java8 parallelStream 等。

模块四:开发框架 - 深入理解 Spring 等主流框架思想

1. 重新认识主流开源技术框架,深入理解背后的原理和关系;

2. 掌握整合各种框架的最佳实践,学会在工作中做技术框架选型;

3. 了解主流框架的发展趋势,一线大厂的使用模式和关注点。

学习和工作中的痛点

1. 对主流开源技术框架,始终在会用、会做简单整合,不懂背后原理;

2. 只会用自己熟悉的框架,不会做技术选型,也不了解一些最佳实践经验;

3. 框架发展太快,学习跟不上了,也不太了解一线大厂使用主流框架的方式。

通过学习掌握的核心能力

1. 夯实基础:从更高的维度和更深入的原理,重新学习主流框架,了解框架的内在联系;

2. 深入学习:掌握常见框架的一些最佳实践经验,能够根据具体的项目情况进行技术框架选型;

3. 积累经验:了解常见主流框架的发展趋势,掌握最佳学习姿势,能够轻松驾驭技术发展。

详细内容

1. Spring 技术体系(Spring Core/Web/MVC/Data/Messaging、Spring Boot 等);

 V 15123957473 欢迎技术交流和网盘分享

2. ORM 技术体系(JPA、Hibernate、MyBatis 等)。

猜你喜欢

转载自blog.csdn.net/xiaoyeping/article/details/110071166