什么是 JVM?
JVM就是虚拟机,模拟计算机环境,加载.class文件,划分内存区域,将字节码解释为计算机能识别的机器码,是Java语言实现一处编译,到处运行的关键。
JDK、JRE、JVM
JDK 是 Java 语言的软件开发工具包。JDK 物理存在,是 programming tools、JRE 和 JVM 的一个集合。
JRE(Java Runtime Environment)Java 运行时环境,JRE 物理存在,主要由 Java API(java 类库) 和 JVM 组成,提供了用于执行 java 应用程序最低要求的环境。
JDK有编译器而JRE没有,但是只要有JRE我们就可以运行java程序,一些开发软件idea都有自己的编译器。
JRE有JVM没有的lib库,JVM对字节码的解析要依赖这些类库。
JVM结构
主要为三部分:类装载器子系统,运行时数据区,执行引擎。
类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。
执行引擎是java虚拟机的最核心组件之一,它负责执行虚拟机的字节码,现代虚拟机为了提高执行效率,会使用即时编译技术将方法编译成机器码后再执行。
运行时数据区主要时JVM虚拟机的内存结构体系,详见JVM——内存结构
编译和执行过程
JVM 学习体系
内存结构
类的加载机制
对象的创建
GC 算法 垃圾回收
GC 分析 命令调优
这些知识点在之后的文章中有详细的介绍,这里只做主干的梳理。
内存结构
JVM——内存结构主要关注点:
jvm 内存结构都是什么
对象分配规则
对象的创建
对象内存的分配方式
分配内存的线程安全问题
对象的内存分布
对象的访问定位
类的加载机制
JVM——类的加载机制主要关注点:
什么是类的加载
类的生命周期
类加载器
双亲委派模型
GC 算法 垃圾回收
主要关注点:
对象存活判断
GC 算法
垃圾回收器
GC 分析 命令调优
JVM——命令调优主要关注点:
GC 日志分析
调优命令
调优工具