首先你应该知道,运行一个 Java 应用程序,咱们必需要先安装 JDK 或者 JRE 包。这是由于 Java 应用在编译后会变成字节码,而后经过字节码运行在 JVM 中,而 JVM 是 JRE 的核心组成部分。JVM 不只承担了 Java 字节码的分析(JIT compiler)和执行(Runtime),同时也内置了自动内存分配管理机制。这个机制能够大大下降手动分配回收机制可能带来的内存泄露和内存溢出风险,使 Java 开发人员不须要关注每一个对象的内存分配以及回收,从而更专一于业务自己。spring
JVM 在对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。运行时优化主要是解释执行和动态编译通用的一些机制,好比说锁机制(如偏斜锁)、内存分配机制(如 TLAB)等。除此以外,还有一些专门用于优化解释执行效率的,好比说模版解释器、内联缓存(inline cache,用于优化虚方法调用的动态绑定)。编程
JVM如此重要,咱们又怎么能得过且过呢?前段时间找到了一份阿里架构师整理的JVM魔鬼文档,真的是杠杠的!!!缓存
看内容
主要从四个部分逐步深刻,由浅入深!springboot
01 什么是Java02 编程语言
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,须要请加QQ:3368213683 或Q群:471467922,备注51。分布式