0

程序 1:当我编写一个简单的 B 类而不在我的 java 程序中创建对象时。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();

    }
}
4

2 回答 2

2

此示例中存在三个分配级别:

  • 当类被加载时(通常是第一次在代码中的某个地方引用它),然后为其结构、代码和静态字段分配内存。

  • 当一个实例被创建(new B())时,非静态字段的内存和一些元数据(对象头)被分配。此内存在堆上。

  • 当调用方法时,堆栈中的内存会分配给该方法内的局部变量。

于 2012-08-23T08:47:56.273 回答
2

这个站点信息量很大,所以看看它链接你就能明白 jvm 是如何运行程序的

于 2012-08-23T09:22:46.263 回答