1. jvm 说明
jvm
既Java Virtual Machine
,既然是虚拟机,其必有存储空间,且不同的存储空间,存储特定的数据,如图所示:

-
虚拟机栈:存储基本数据类型、引用对象的变量、局部变量表等,这是线程私有的,每个线上线程的大小默认为1Mb
。
-
程序计数器:存储字节指令的地地址,如果是本地方法栈,则存储undefined
。
-
本地方法栈:由于java
时表层语言,无法直接访问硬件,需要调用第三方语言,比如C、C++
来操作硬件,比如创建内核线程,操作文件等。
-
方法区:存储jvm
编译后地字节码文件,静态变量,常量,类信息等。
-
堆