4006-998-758
3000+课程任你选择
Java高级使用技巧及性能调优
研发学院 Java高级使用技巧及性能调优
曹雪松

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


查看老师详情
课程内容

课程目标

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

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

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

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

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

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

  熟练掌握微服务架构及微服务组件

  熟练掌握常见的设计模式及综合使用

  熟练掌握Spring框架

 

课程大纲 

课程主题

课程内容

第一部分

深入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 疑难问题分析

第二部分:

深入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.并发工具类(Semaphore,CountDownLatch等)

5.线程池

6.ThreadLocal

7.Future和FutureTask

第三部分

高效编码技巧

内容一、集合操作

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

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

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

4.其它常用集合类介绍

内容二、IO流

1.java编码问题

2.常用字节流操作技巧

3.常用字符流操作技巧

4. 序列化及其性能

5.IO专题的设计思想

内容三、常见优化技巧

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

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

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

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

内容四、stream操作

1、java集合与泛型

2、什么是流

3、Stream操作(选择与过滤、映射、排序、查找与匹配、规约、收集、迭代)

4、stream案例

 

第四部分

分布式系统与微服务

内容一、微服务架构详解

1.微服务与SOA概述

2.微服务与SOA剖析

3.微服务与其它可扩展架构的关系

内容二、微服务架构深入剖析

1.   RPC

2.   RPC性能(IO模型、线程模型、数据协议)

3.微服务常踩的坑

4.微服务的技术挑战

内容三、微服务基础设施

1.微服务基础设施架构

2.微服务框架模式

3.如何选择微服务框架

内容四、微服务拆分技巧

1.微服务落地的总体思路和技巧

2.DDD是否可行

3.如何按业务拆分微服务

4.如何按质量拆分微服务

内容五、服务组件

1.   服务注册与发现(Eureka,Consul)

2.   负载均衡(Ribbon,Nginx)

3.   断路器与熔断机制(Hystrix,Resilience4j)

4.   消息队列(RabbitMQ,Kafka,RocketMQ)

5.   分布式事务(TCC,Saga,XA)

 

第五部分

设计模式最佳实践

内容一、常见创建型模式

1.   简单工厂

2.   工厂方法

3.   抽象工厂

4.   单例模式

5.   原型模式

6.   构建者模式

7.   综合案例

内容二、常见结构型模式

1.   适配器模式

2.   装饰器模式

3.   代理模式

4.   综合案例

内容三、常见行为型模式

1.   策略模式

2.   观察者模式

3.   命令模式

4.   模版方法设计模式

第六部分

框架

内容一、springmvc

1.springmvc简介

2.springmvc注解

3.springmvc数据传输

4.springmvc整合操作

内容二、springboot

1.springboot日志

2.Spring boot自定义starter

3.Spring boot相关缓存

4.Spring boo

5. 消息管理

6.Spring boot检索

7.Srping boot 任务调度

8.Spring boot安全

内容三、springcloud简介

1、单体项目和微服务项目区别

2、微服务技术框架简介

3、Spring cloud alibaba简介

4、Spring cloud nacos注册中心及配置中心简介

5、Spring cloud loadbalance负载均衡简介

6、Spring cloud sentinel 限流简介

7、Spring cloud seata分布式事务简介

8、Spring cloud gateway网关简介

9、Spring cloud skywalking简介

内容四、SpringBatch批处理框架

1.SpringBatch简介

2.SpringBatch之HelloWorld

3.SpringBatch基本概念

4.SpringBatch配置作业Job

5.配置作业步Step

 


返回上一级