Object obj=new Object();
一句很简单的代码,但是这里却设计Java栈,Java堆,java方法去三个最重要的内存区域之间的关联。
假设这句代码出现在方法体中。
1.Object obj将反映到Java栈的本地变量表,这是一个本地变量的定义。是一个引用类型。
2.new Object()将会反映在Java堆中。存储了Object类型的所有实例数据值(次内存是不固定大小的,因为谁也无法确定这是对象的大小)。
3.程序运行,类型信息已经加载到内存里,这些数据就在Java方法区中,包括:类型的父类型,实现的接口、包含的方法等类型信息。new Object(),根据这些信息建立对象。可以看到这些信息是线程共享的。
时间: 2024-10-05 14:53:30