4 Star 24 Fork 6

cncounter / translation

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.83 KB
一键复制 编辑 原始数据 按行查看 历史
renfufei 提交于 2019-11-21 13:14 . 部分更新

JVM基础课程

Java语言编写代码非常简单,也很容易入门,非常适合开发各种企业级应用和业务系统。 一个众所周知的事实是: 用起来越简单的系统, 其背后的实现就越复杂。 道理很容易理解, 系统的内部实现考虑了各种极端的情况,对用户屏蔽了各种复杂性。 作为支撑庞大的Java生态系统的基石, JVM内部实现是非常复杂的。 据统计,OpenJDK的实现代码已经超过1000万行。

最火热的JVM知识是什么? “JVM调优” “JVM性能优化”。 JVM难不难? 自然是 “难者不会,会者不难。” 万丈高楼平地起, 没有掌握一定的基础知识, 学过的各种高深知识和技巧,也就转眼即忘,书到用时方恨少。 掌握好基础知识,学而时习之,经常使用各种工具并熟练起来,自然就能深入掌握一门技能。 理论结合实践,掌握JVM相关知识,熟练各种工具的使用,是Java工程师职业进阶中不可或缺的。

学就要学会理论,掌握实现原理。 理解了Java标准平台的JVM,稍微变通一下,碰到 Android 的 ART, Go的虚拟机, 以及各种语言的垃圾收集实现, 都会很容易理解。

课程大纲

1. JVM体系结构概述

  • Classloder
  • Java虚拟机栈
  • 本地方法栈
  • 程序计数器
  • Java堆
  • 方法区
  • 运行时常量池
  • DirectBuffer
  • JIT

2. GC专题

  • GC算法与分代理论
  • G1
  • CMS
  • GC触发条件
  • 常用参数说明
  • GC调优方法
  • OOM简介

3. JMM与线程安全

  • Java内存模型
  • 对象的创建过程
  • 对象的内存布局
  • 线程不安全问题
  • Lock与Monitor
  • 常见的锁分类
  • 死锁
  • 锁优化

4. JVM工具专题

  • 内置命令行工具
  • JMX与图形客户端监控
  • GC性能分析
  • CPU热点分析
  • 内存分配分析
  • 远程Debug简介
  • 远程监控相关工具
  • 性能指标采集
  • Arthas诊断工具

5. 动手实践

  • 监控本地JVM
  • 监控远程JVM
  • 分析对象的内存占用
  • 动手写内存泄露代码
  • 体验巨无霸对象
  • OOM与内存Dump分析
  • 自己动手写死锁
  • GC调优案例
  • 体验JNI与堆外内存

课程目标

  • 加深对Java编程语言的理解
  • 掌握JVM相关基础,熟悉Java程序运行环境
  • 理解GC算法,熟悉常用GC的适用场景
  • 了解内存溢出的原因和解决思路
  • 学会内存泄漏问题排查
  • 学会分析Java对象和内存占用
  • 了解各种锁的优缺点
  • 熟练使用JVisualVM等工具

授课成果

  • 加深对Java编程语言的理解
  • 掌握JVM相关基础,熟悉Java程序运行环境
  • 熟悉GC算法和适用场景
  • 了解内存溢出的原因并解决
  • 排查内存泄漏问题
  • 分析Java对象和内存占用
  • 了解各种锁的优缺点
  • 熟练使用JVisualVM等工具

考核方式

|1. | 基础试题考核 | 50% | |2. | 大作业 | 50% |

HTML
1
https://gitee.com/cncounter/translation.git
git@gitee.com:cncounter/translation.git
cncounter
translation
translation
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891