返回信息流String s=new String("abc");
这里创建了两个对象,看了下源码,以下是String的构造函数和value属性
private final char value[];
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
那么value和常量池"abc"的value是不是应该是同一份引用?
也就是如果我更改了对象s对应的value数组的某一个值,那么常量池的也就会相应发生改变?[ema13][ema13]
这是一条镜像帖。来源:北邮人论坛 / java / #48656同步于 2016/3/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于String的问题
wobudong
2016/3/17镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
貌似是的。
lz 为啥不写个程序试一下?
【 在 wobudong 的大作中提到: 】
: String s=new String("abc");
: 这里创建了两个对象,看了下源码,以下是String的构造函数和value属性
: private final char value[];
: ...................
同意这个,记得之前看过说“abc”常量是存在特殊区域的,改不掉。
【 在 youmi 的大作中提到: 】
: 后半句不对,你是无法改变s对映的常量值的
: 你认为你改变了,但其实只是生成了一个新的对象,然后指向新的对象而已