怎么jvm运行程序

时间:2012-08-23 08:42:13

标签: java jvm

程序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();

    }
}

2 个答案:

答案 0 :(得分:2)

此示例中有三个级别的分配:

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

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

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

答案 1 :(得分:2)

这个网站内容非常丰富,所以看看它Link你将能够理解jvm如何运行程序