本帖最后由 杨兴庭 于 2013-7-14 18:15 编辑
代码如下:public class AS { String a="a"; String b="b"; String c; public AS(){} public void SetC(String c){ this.c=c; }}
1.变量a和b的值是在AS.class被加载的时候存放到了constant_string_info表里了吗?
2.比如在main方法里new了一个AS as=new AS(); String e="qwe"; as.setC(e);
方法区里面是每一个类都有一个常量池吗,java开发平台上每个常量池都有一个constant_string_info表?如果是的话,那么e="qwe"是在哪个常量池检索是否存在“qwe”,是main所在类的常量池吗?
new AS后产生了一个AS对象实例放在了堆中。那么堆中的对象实例都包括哪些内容,是仅仅包括实例的描述,还是包括实例的特有的数据(如果包括,那是值,还是值的引用)?具体的,例如as中c,其值为“qwe”,那么在这个heap中的实例数据包括这个c的值吗,还是指向某个常量池中“qwe”的引用? |