参见英文答案 >
What’s the method representation in memory? 3个
我的同事刚问我一个非常有趣的问题,我不能给他一个答案.
我们假设我们有以下课程:
public class Person {
String name;
public Person(String name) {
this.name = name;
}
public void print() {
System.out.println("xxx");
}
}
现在,我们正在创建对象:
Person p1 = new Person("a");
Person p2 = new Person("b");
Person p3 = new Person("c");
Person p4 = new Person("d");
Person p5 = new Person("e");
Person p6 = new Person("f");
Person p7 = new Person("g");
Person p8 = new Person("h");
问题是:
我们是否保留每个单个对象中可用方法的信息?如果我们创建一个新对象p9,JVM是否会创建仅包含字段信息的对象,还是会向该对象添加有关方法的信息?
另一个问题:
如果我调用p1.print()会发生什么? p1是否必须要求Person类提供此方法,还是已经保存在p1对象中?