JAVA虚拟机(一):内存区域

根据《java虚拟机规范第二版》规定,现阶段的java内存区域总体如下图

其中,方法区和堆是所有线程共享区域。 虚拟机栈,本地方法栈,程序计数器是各线程独占。

概述一下各个区域

先说说线程私有的几个区域:

1.程序计数器

1.当前线程所执行的字节码的行号指示器,通过改变这个计数器的值来选取下一条需要执行的指令。由于java虚拟机多线程通过线程切换轮流执行,所以为了线程切换以后能恢复到正确的位置开始执行,所以每一条线程都有自己的程序计数器。
2.其中:如果当前线程执行的是java方法,那么记录器记录的是虚拟机字节码指令的地址,如果是native方法,那么这个值为空。
3.它是java虚拟机规范中唯一一个没有定义OutOfMemoryError情况的区域。

猜你喜欢

转载自www.cnblogs.com/ywd979/p/9777328.html