[英]What happens to Strings when object is cloned in Java?
默认情况下 Java 会进行浅克隆,如果克隆了 object 并且它有一个类似这样的String s = new String("Hi");
那么克隆的 object 将指向一个新的字符串 object 还是会引用之前的 object?
这里的问题是,Java 在克隆和创建新的 object 时是否对字符串进行了不同的处理?
new
创建String时,都会创建一个新的objectnew
创建的字符串的引用可以被intern
以分配给字符串池中的现有条目,或者如果它不存在则创建新条目。super.clone
完成的,没有任何额外的代码,那么所有的引用都会被复制(假设super
是 Object)String
引用将共享原始 object 指向的现有String
对象
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.