JVM 内存构造
一图理解 JVM 内存构造
途中蓝色局部是各线程共享的数据区,其它构造是线程隔离的数据区。
各内存构造性能
- 程序计数器
程序计数器是线程公有的。程序计数器是以后线程所执行字节码的行号指示器。 -
Java 虚拟机栈
Java 虚拟机栈是线程公有的。虚拟机栈形容的是 Java 办法执行的线程内存模型,每个办法执行的时候,Java 虚拟机栈都会创立一个栈帧。而每个栈帧中次要蕴含四个局部:局部变量表,操作数栈,动静连贯,办法进口。
-
本地办法栈
本地办法栈也是线程公有的。与虚拟机栈类似,只不过虚拟机栈为字节码服务,而本地办法栈为本地办法 (Native 办法) 服务。
-
Java 堆
Java 堆是虚拟机所治理的内存中最大的一块。Java 堆是被所有线程共享的一块虚拟内存区域。在虚拟机启动时创立。Java 堆的惟一目标就是寄存对象实例,所有的对象实例以及数组都应在堆上调配。
-
办法区
办法区是各个线程共享的内存区域,它用于存储已被虚拟机加载的类型信息、常量、动态变量、即时编译器编译后的代码缓存等数据。
-
运行时常量池
Class 文件中除了有类的版本、字
段、办法、接口等形容信息外,还有一项信息是常量池表(Constant Pool Table),用于寄存编译期生
成的各种字面量与符号援用,这部分内容将在类加载后寄存到办法区的运行时常量池中
-