4006-998-758
3000+课程任你选择
Java Tuning and Concurrency programming
研发学院 Java Tuning and Concurrency programming 开课时间:2024-07-18
曹雪松

曾担任淘宝技术总监、华胜天成项目经理,精通软件设计的理论、实践和工具,有10年以上的大型项目研发及项目管理经验,曾经策划多个大型项目与网站的架构,主持过访问量达亿级大型网站,熟悉大型网站的优化与运维。掌握多种开发平台熟悉各种中间件框架平台,研究过大量开源的框架平台,经过多年实践形成自己架构风格,擅长Java、javaEE方面的各种技术; 在软件架构、设计模式、详细设计、重构、海量数据处理和优化、中间件技术、nosql等方面有丰富的实践经验亲自参与实施项目:淘宝数据魔方,淘宝服务平台,国电调试所项目管理系统,中科院子午工程数据与通信系统,某大型电子商务网站架构、项目管理、性能优化,苏州金莱克洁具有限公司ERP项目,苏州海关保税加工辅助核销系统等。


查看老师详情
课程内容

课程目标


●  熟练掌握Java数据结构及集合库底层实现

  熟练掌握java io底层设计及设计原理

  熟练掌握Java多线程、线程调优并掌握Java并发编程

  熟练掌握java网络通讯、RPC及网络通讯优化知识

  熟练掌握JVM执行机制、内存模型、内存分配机制、垃圾回收机制

  熟练掌握JVM的调优技巧及方法并熟练使用常用的JVM分析和监控工具

  熟练掌握Java编码性能及性能调优


课程时长


2天(6小时/天)


课程大纲

 

课程主题

课程内容

第一部分

深入Java核心库及性能调优

 

内容一、集合操作

1.ArrayList类、LinkedList类操作技巧及源码分析

2.HashSet、TreeSet操作技巧及源码分析

3.HashMap、TreeMap操作技巧及源码分析

4.其它常用集合类介绍

内容二、IO流

1.java编码问题

2.常用字节流操作技巧

3.常用字符流操作技巧

4. 序列化及其性能

5.IO专题的设计思想

第二部分:

深入JAVA多线程以及并发编程

内容一、深入多线程原理

1.线程和进程(并发与并行、线程上下文切换、线程状态)

2.线程安全问题

3.多线程并发的3个特性(原子性、有序性、可见性)

4.有序性案例:指令重排序

5.可见性案例:JAVA内存模型(JMM)

内容二、线程同步及通讯

1.如何解决可见性问题

2.同步原理剖析

3.什么是Monitor

4.锁机制优化

5.线程间的通讯

内容三、volatile

1.解决内存可见性问题

2.volatile实现原理剖析

3.volatile缺陷:原子性bug

4.volatile使用场景

5.synchronized和volatitle比较

内容四、并发编程

1.JUC简介

2.原子类与(Atomic包,CAS介绍,CAS原理详解、CAS缺陷)

3.Loc锁与AQS(锁简介、与Synchronized对比、ReentrantLock锁、AQL原理、读写锁等)

4.并发容器(ConcurrentHashMap,CopyOnWriteArrayList,并发队列等)

5.线程池

6.ThreadLocal

7.Future和FutureTask

第三部分

深入网络通讯原理及优化

一、网络编程核心原理

1.网络通讯协议

2.TCP与UDP协议(三次握手、四次挥手)

3.输入URL地址到显示网页经历了哪些过程,会使用到哪些协议

4.HTTP1.0与HTTP1.1的区别

5.URI与URL的区别

6.HTTP与HTTPS的区别

 

二、深入IO模型

1.BIO

2.NIO(文件IO、网络IO、案例)

3.AIO编程

4.RPC及RPC优化

 

三、网络层优化

1.性能好,效率高的一对多通讯如何实现

2.事件驱动:C10M是如何实现

3.如何提升TCP三次握手的性能

4.如何提升TCP四次未收的性能

5.如何修改TCP缓冲区才能兼顾并发数量与传输速度

6.如何调整TCP拥塞控制性能

7.实战案例 

第四部分

深入jvm及调优

 

 

内容一、JVM内存分配机制

1.JVM基本常识(JVM架构图)

2.类加载子系统(加载时间、过程、类加载器、双亲委派)

3.运行时数据区(堆、JVM栈、本地方法栈、方法区、字符串常量、程序计数器、直接内存)

4.对象的创建流程与内存分配

5.对象内存布局

6.如何访问一个对象

内容二、JVM垃圾收集机制

1.GC基本原理(垃圾回收、什么垃圾、如何寻找垃圾、如何清除垃圾)

2.串行收集器(年轻串行、老年串行)

3.并行收集器(Parallel Scavenge收集器、Parallel Old收集器、ParNew收集器、CMS收集器)

内容三、JVM相关工具的使用

1.JDK工具包使用(jps,jstat,jinfo,jmap,jhat,jstack,VisualVm)

2.第三方工具的使用(GCEasy,MAT,GCViewer,Arthas)

内容四、JVM参数

1.标准参数

2.非标准参数

3.不稳定参数

内容五、JVM调优

1.JVM调优三问

 1.1.为什么JVM需要调优

 1.2什么时候进行JVM调优

 1.3JVM调优是调什么内容

 1.4.JVM调优原则

 1.5.JVM调优主要步骤

2.GC日志详解

 2.1GC参数配置

 2.2GC日志解读

 2.3GC可视化分析(内存占用、关键性能指标、GC统计、GC原因)

3.堆内存与元空间优化

  3.1监控分析(内存占用、GC统计)

  3.2判断

  3.3 确定目标

  3.4对比差异

4.线程堆栈优化

5.垃圾回收器优化:吞吐量优先

6.垃圾回收器优化:响应时间优先

内容六、JVM调优实战

1.内存溢出的定位与分析

2.检测死锁

内容七、其它

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

2. JVM 疑难问题分析

第五部分

常见应用性能问题解析

1.常见代码相关性能问题及解析

2.常见CPU负载性能问题及解析

3.常见内存相关性能问题及解析

4.常见磁盘IO、网络IO性能问题及解析

 


返回上一级