实例变量和实例方法存储在java中的位置?

时间:2018-06-08 19:58:20

标签: java memory-management

在下面的程序中,是否意味着创建了3个实例变量和3个实例方法并为它们分配了内存?

class Foo{

    String name = "";

   public void greet(String name){

        this.name = name;
    }
}

class Greetings {
    public static void main (String[] args) {

    Foo ob = new Foo();
    Foo ob1 = new Foo();
    Foo ob2 = new Foo();

    ob.greet("hello friends");
    ob1.greet("welcome to java");
    ob2.greet("let us learn");
    System.out.println(ob.name);
    System.out.println(ob1.name);
    System.out.println(ob2.name);
    }
} 

2 个答案:

答案 0 :(得分:1)

Java语言规范没有说明如何组织内存,或者如何表示对象,方法和类。

所以,答案是:你不能和不应该知道。

答案 1 :(得分:0)

所有3个对象都存储在堆内存中。随着应用程序的运行,堆的大小会增加。这里的 new 运算符将内存分配给堆中的对象。这意味着每次在语句中说 new 时,都会在堆中为该对象分配一个单独的内存空间。方法存储在JVM内部堆中。

您可以找到一个简单的示例,说明如何管理java here

中对象的内存