深入JVM内核——原理、诊断与优化

课程简介:
目前,Java是最为流行的编程语言之一,它的基础平台就是JVM。除了Java,如JRuby、Scala、Clojure等语言也运行在JVM平台。
熟悉和掌握JVM平台有着重要的实用价值和意义。
在本课程中个,将详细介绍JVM的基本原理、组成以及工作方式,并配合实际案例,介绍相关的调优技巧。

授课时间:
开课时间2014年8月2日,课程持续时间为11周

课程大纲:
第一周
初识JVM
JVM分类
Java语言规范
JVM规范
介绍JVM的基本知识和发展历史,并介绍了Java语言规范和JVM规范。

第二周
JVM运行机制简介
堆、栈、方法区等
JVM启动流程
内存模型和volatile实例
解释和编译运行的概念
介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。

第三周
常用JVM参数
堆的分配参数
栈分配及实例讲解
server与client模式
调试跟踪参数
介绍常用的JVM参数,包括内存分配、堆栈分配、虚拟机运行模式以及调试跟踪参数。

第四周
GC的算法和种类
引用计数
标记清除
复制算法
标记压缩
可触及性
本章是理论性较强的一章,主要介绍GC的基本算法和思想,本章作为下一章节的前序课程。

第五周
GC控制参数
Serial ParNew等GC参数
GC的参数搭配实例分析
介绍GC的设置参数,并分析相关的案列。

第六周
类装载
class装载流程
ClassLoader模式
ClassLoader的使用实例分析
热替换例子
详细介绍ClassLoader的原理和应用。分析2个案例,说明ClassLoader的使用。

第七周
性能监控工具
线程死锁分析
OOM分析
介绍常用的JVM诊断和分析工具,并以死锁和OOM为例,展示这些工具的使用。

第八周
分析Java堆
MAT的使用案例
Jvisualvm介绍使用
介绍了Java堆的分析方法,以一个实例为基础,展示对堆的分析过程。

第九周

baise锁
轻量级锁
自旋锁
介绍JVM中对多线程锁的实现。

第十周
class文件结构
ASM库介绍
介绍JVM规范中的最重要的内容——Class文件结构,同时介绍ASM库的使用以及对class文件的修改。

第十一周
字节码执行
案例以及javap
JIT及相关参数
介绍JVM的字节码以及反汇编方法,同时介绍JIT相关的参数和应用。

授课对象:
有一定的程序设计基础,对Java语言有所了解或者感兴趣的同学都可以加入到本课程中来。

课程所需环境准备:
需要JDK6 JDK7的平台

学习预期:
熟悉JVM的工作机制,知道如何处理Java程序开发与运行中出现各种问题。

授课讲师:
葛一鸣:从事Java软件开发多年,对Java、智能计算等领域颇有兴趣。现著有《Java程序性能优化》
博客:http://www.uucode.net
E-Mail:billykinggym@126.com

    原文作者:JVM
    原文地址: https://www.cnblogs.com/pengdaijun/articles/3890997.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞