为什么要学习JVM,因为我们所写的Java项目是跑在JVM里的,最重要的是内存管理
JVM的内存区域,包含数据(方法区、堆),指令(程序计数器、本地方法栈、虚拟机栈)
1、方法区:存放类信息、静态变量、常量
2、堆:存放对象、数组
3、程序计数器:存放线程指令地址
4、本地方法栈:存放其他语言的地方(C、C++),一般有native修饰的
5、虚拟机栈:存放局部变量(8大基本类型、对象引用地址、returnAddress类型)、操作数栈(用来操作数的,比如=8*2)、动态链接(调用其他方法,person.add()方法,存储链接的地方)、出口(正常return,不正常就是异常)