Java虚拟机运行时的数据区域

1.堆区(Heap)

(1)Heap是被所用线程共享的区域,是虚拟机中内存最大的一块。

(2)它的唯一目的就是存放对象的实例。

例如:A a=new A(100);

存放在堆中的是A(100)这个new出来的对象信息,而不是a这个对象引用

(3)它也是GC垃圾回收的主要区域,主要用分代收集算法

2.栈区(VM Stack)

(1)每个线程包含一个栈区,不被共享

(2)方法执行时存储基本类型变量区、执行环境上下文、操作指令区

例如上面的对象引用a

3.方法区

(1)是各个线程共享的区域

(2)存储类(class)信息、静态数据(static)、常量(final)以及编译后的代码数据

猜你喜欢

转载自blog.csdn.net/kuishao1314aa/article/details/81110182
今日推荐