我刚才的同事问了我一个非常有趣的问题,但我无法回答他。
假设我们有以下类:
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对象中?