深入浅出 Java 虚拟机

摘要:
相信每位Java人对这句话都不陌生,“一次编写,到处运行”,我们说这句话的底气就来自于JVM。这门课会从四个方面,从基础知识到实战问题解决方案,带你重新学习Java虚拟机,带你还原最真实的问题现场,找到解决方法。第二章垃圾回收:Java中有非常丰富的垃圾回收器,此部分以理论为主,通过横向比较的方式讲解。第四章进阶部分:该模块偏向底层,介绍JMM,从字节码层面来看Java的基础特性以及并发方面的问题。

专栏解读

"Write Once , Run Anywhere"。

相信每位Java人对这句话都不陌生,“一次编写,到处运行”,我们说这句话的底气就来自于 JVM(Java Virtual Machine)。你可能花过很多精力学习 JVM 的知识,但在面对真实生产环境产生的问题,依旧会束手无策:

正在运行的 Java 程序,突然 OOM
程序异常卡顿,CPU 疯狂运转,GC 时间飙升
面对一堆 JVM 参数无从下手,甚至错误配置某个参数而产生负面效果
一头雾水,不知如何了解线上应用的垃圾回收状况
......
不论是在问题现场还是在跳槽面试的时候,面的这些问题,如何快速定位和解决问题,需要你对Java 虚拟机的实现和优化,有极为深刻的理解。这门课会从四个方面,从基础知识到实战问题解决方案,带你重新学习 Java 虚拟机,带你还原最真实的问题现场,找到解决方法。

第一章基础原理:
主要讲解一些基础概念,以及 JVM 的内存区域划分和类加载机制等。

第二章垃圾回收:
Java 中有非常丰富的垃圾回收器,此部分以理论为主,通过横向比较的方式讲解。

第三章实战部分:
模拟 OOM 的溢出场景,通过实例分析线上问题,提供多个排查工具的使用介绍。

第四章进阶部分:
该模块偏向底层,介绍 JMM,从字节码层面来看 Java 的基础特性以及并发方面的问题。

课程讲师

李国,前京东高级架构师。 曾任京东、陌陌高级架构师。负责过京东金融调用链系统 SGM,以及数据库中间件 CDS 的开发工作;曾负责陌陌基础社交业务线的整体架构工作,对高并发下的 JVM 调优有丰富的经验。

学习收获

方法丨垃圾回收、内存、GC 等常见问题“灭火”方案

面试丨掌握大厂面试 JVM 面试真题解法

进阶丨内存模型、字节码的底层原理和实战进阶

提升丨掌握中大型项目下,性能瓶颈调优技巧

课程目录

基础原理

第01讲:一探究竟:为什么需要 JVM?它处在什么位置?
第02讲:大厂面试题:你不得不掌握的 JVM 内存管理
第03讲:大厂面试题:从覆盖 JDK 的类开始掌握类的加载机制
第04讲:动手实践:从栈帧看字节码是如何在 JVM 中进行流转的

垃圾回收

第05讲:大厂面试题:得心应手应对 OOM 的疑难杂症
第06讲:深入剖析:垃圾回收你真的了解吗?(上)
第06讲:深入剖析:垃圾回收你真的了解吗?(下)
第07讲:大厂面试题:有了 G1 还需要其他垃圾回收器吗?
第08讲:案例实战:亿级流量高并发下如何进行估算和调优

实战部分

第09讲:案例实战:面对突如其来的 GC 问题如何下手解决
第10讲:动手实践:自己模拟 JVM 内存溢出场景
第11讲:动手实践:遇到问题不要慌,轻松搞定内存泄漏
第12讲:工具进阶:如何利用 MAT 找到问题发生的根本原因
第13讲:动手实践:让面试官刮目相看的堆外内存排查
第14讲:预警与解决:深入浅出 GC 监控与调优
第15讲:案例分析:一个高死亡率的报表系统的优化之路
第16讲:案例分析:分库分表后,我的应用崩溃了

进阶部分

第17讲:动手实践:从字节码看方法调用的底层实现
第18讲:大厂面试题:不要搞混 JMM 与 JVM
第19讲:动手实践:从字节码看并发编程的底层实现
第20讲:动手实践:不为人熟知的字节码指令
第21讲:深入剖析:如何使用 Java Agent 技术对字节码进行修改
第22讲:动手实践:JIT 参数配置如何影响程序运行?
第23讲:案例分析:大型项目如何进行性能瓶颈调优?

彩蛋

第24讲:未来:JVM 的历史与展望
第25讲:福利:常见 JVM 面试题补充

课程地址

免责声明:文章转载自《深入浅出 Java 虚拟机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle 固定执行计划-使用SPM(Sql Plan Management)固定执行计划AVD模拟器怎么配置上网下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mac终端下ssh虚拟机中的linux提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

重新装了虚拟机中的Linux系统后,在mac下ssh就连不上虚拟机了   localhost:~ zhouqian$ ssh root@172.17.9.19 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATI...

深入理解JVM3

VM运行时数据区域 JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途、创建和销毁时间。根据《Java虚拟机规范(第二版)》的规定,JVM包括下列几个运行时数据区域: 1.程序计数器(Program Counter Register): 每一个Java线程都有一个程序计数器来用于保存程序执行到当前方法的哪一个指令,对于非Native...

grub4dos引导menu.lst菜单测试

grub4dos就不多介绍了,可以引导很多种系统MS-DOS、Windows、Linux等等 menu.lst菜单可以自定义修改。但是每次修改后不能重启机器来测试。 虽然可以用其他工具测试,但是还是想用虚拟机测试好了。 【准备工具】 1.UltraISO (用来生成ISO镜像) 2.MicrosoftVirtualPC-2007V6.0192(或其他虚拟机...

Vmware安装Linux打开一直黑屏的四个解决方法

方法一:管理员身份打开cmd,输入netsh winsock reset,回车,重启电脑(我试过不行) 方法二:关掉该虚拟机,编辑虚拟机设置,选中硬件中的虚拟机设置,将加速3D图形前面的勾去掉,然后再次启动虚拟机。(我试过不行) 方法三:进入bios,在启动时候 按del按键,进入bios里面 有个virtual technology 开启该项。(我试过...

kvm迁移

一、静态迁移(冷迁移)        对于静态迁移,你可以在宿主机上保存一个完整的客户机镜像快照,然后在宿主机中关闭或 者暂停该客户机,然后将该客户机的镜像文件复制到另一台宿主机中,使用在源主机中启动该客户机时的命令来启动复制过来的镜像。 二、动态迁移(热迁移)        如果源宿主机和目的宿主机共享存储系统,则只需要通过网络发送客户机的 vCPU 执...

企业级虚拟化实战之KVM——shell脚本实现虚拟机安装、管理、快照、存储池、批量创建

问题背景 使用shell或者python脚本完成KVM虚拟机的批量创建,要求如下: (1)脚本需要人机交互,当输入虚拟机数量,虚拟机规格参数后,即可批量创建相应机器; (2)使用EXP技术从网络安装虚拟机,创建多个时使用复制原理; (3)脚本实现虚拟机生命周期管理,即可实现关机,启动,快照,从快照启动等等。 README.txt 本程序实现了虚拟机安装、虚...