为什么 JVM 在 Java 中如此重要?

首先你应该知道,运行一个 Java 应用程序,我们必须要先安装 JDK 或者 JRE 包。这是因为 Java 应用在编译后会变成字节码,然后通过字节码运行在 JVM 中,而 JVM 是 JRE 的核心组成部分。JVM 不仅承担了 Java 字节码的分析(JIT compiler)和执行(Runtime),同时也内置了自动内存分配管理机制。这个机制可以大大降低手动分配回收机制可能带来的内存泄露和内存溢出风险,使 Java 开发人员不需要关注每个对象的内存分配以及回收,从而更专注于业务本身。

JVM 在对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。运行时优化主要是解释执行和动态编译通用的一些机制,比如说锁机制(如偏斜锁)、内存分配机制(如 TLAB)等。除此之外,还有一些专门用于优化解释执行效率的,比如说模版解释器、内联缓存(inline cache,用于优化虚方法调用的动态绑定)。

JVM 的结构

 

JVM如此重要,我们又怎么能得过且过呢?前段时间找到了一份阿里架构师整理的JVM魔鬼文档,真的是杠杠的!!!

看内容

主要从四个部分逐步深入,由浅入深!

 

优秀的Java开发者

01 什么是Java

 

02 编程语言

03 计算机[硬件]能够懂的语言

 

04 So JVM是什么?

 

05 JDK JRE JVM

JVM到底该学习什么

01 源码到类文件

 

02 类文件到虚拟机(类加载机制)

 

03 运行时数据区(Run-Time Data Areas)

 

04 JVM内存模型

 

05 Garbage Collect(垃圾回收)

 

工欲善其事必先利其器

01 JVM参数

 

02 常用命令

 

03 常用工具

 

04 执行引擎

 

05 重新认知JVM

 

性能优化

01 内存

 

02 GC

 

03 CPU占用率高

04 JVM性能优化指南

05 常见问题

 

附资料:

 

阿里架构大牛说:JVM从入门到入魔,就是这么简单!

上文中提到的阿里架构牛整理的JVM从入门到入魔笔记、分布式事务实战文档分布式系统常用技术及案例分析、深入浅出springboot等等都可免费分享原件PDF,关注+转发后扫描小编的二维码即可!