程序1:当我在我的java程序中编写一个简单的B类而没有创建对象时。 JVM如何将内存分配给包含成员字段和成员函数的类代码。
class B
{
int a=10;
public void print()
{
System.out.println("inside B class");
}
}
程序2:当我创建该类的对象时,jvm如何为对象分配内存...请参阅下面的代码
class B
{
int a=10;
public void print()
{
System.out.println("inside B class");
}
public static void main(String args[])
{
B b=new B();
b.print();
}
}
答案 0 :(得分:2)
此示例中有三个级别的分配:
当加载类时(通常是第一次在代码中的某处引用它),然后分配其结构,代码和静态字段的内存。
创建实例(new B()
)时,将分配非静态字段和某些元数据(对象标头)的内存。这个内存在堆上。
调用方法时,堆栈中的内存将分配给该方法中的局部变量。
答案 1 :(得分:2)
这个网站内容非常丰富,所以看看它Link你将能够理解jvm如何运行程序