一、认识JVM
- java Virtual Machine(java虚拟机)是java程序实现跨平台的一个重要的工具。
JVM组成部分:
- 类加载系统:负责完成类的加载
- 运行时数据区:在运行java程序的时候会产生的各种数据会保存在运行时数据区
- 执行引擎:执行具体的指令
二、数据区
运行时数据区也就是JVM在运行时产生的数据存放的区域,这块区域就是JVM的内存区域,也称为JVM的内存模型JMM。
JMM分成了以下几个部分:
- 堆空间(线程共享):存放new出来的对象
- 元空间(线程共享):存放类元信息、类的模版、常量池、静态部分
- 线程栈(线程独享):方法的栈帧
- 本地方法区(线程独享):本地方法产生的数据
- 程序计数器(线程独享):配合执行引擎来执行指令
线程栈:执行一个方法就会在线程栈中创建一个栈帧