JVM内存主要分为以下几部分:
1、PC:程序计数器,主要用来作为当前线程所执行字节码的行号指示器,属于线程私有。
2、Java Stack:java 栈,线程的生命周期相同,线程中每一个方法的调用建立一个栈帧,这个栈帧主要存储局部变量表,操作栈,动态链接,方法出口等,一个方法的执行,对应一个栈帧的入栈和出栈。线程私有。
3 native method Stack:本地方法栈,与虚拟机栈类似。
4、java heap:java堆,存储对象实例以及数组。线程共享区域。
5、Method Area:方法区,存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
6、Runtime Constant Pool:运行时常量池,方法区的一部分,存放编译期生成的各种字面量和符号引用。
7、Direct Memory:直接内存,虚拟机以外的内存,由java1.4的NIO引入,使用本地函数直接分配堆外内存,通过一个存储在java堆中的DirectByteBuffer对象作为对直接内存的引用进行操作。
1、PC:程序计数器,主要用来作为当前线程所执行字节码的行号指示器,属于线程私有。
2、Java Stack:java 栈,线程的生命周期相同,线程中每一个方法的调用建立一个栈帧,这个栈帧主要存储局部变量表,操作栈,动态链接,方法出口等,一个方法的执行,对应一个栈帧的入栈和出栈。线程私有。
3 native method Stack:本地方法栈,与虚拟机栈类似。
4、java heap:java堆,存储对象实例以及数组。线程共享区域。
5、Method Area:方法区,存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。
6、Runtime Constant Pool:运行时常量池,方法区的一部分,存放编译期生成的各种字面量和符号引用。
7、Direct Memory:直接内存,虚拟机以外的内存,由java1.4的NIO引入,使用本地函数直接分配堆外内存,通过一个存储在java堆中的DirectByteBuffer对象作为对直接内存的引用进行操作。

1万+

被折叠的 条评论
为什么被折叠?



