【发布时间】:2021-05-23 00:33:40
【问题描述】:
默认情况下Java会进行浅克隆,如果一个对象被克隆并且它有一个像String s = new String("Hi");这样的字符串,那么克隆的对象将指向一个新的字符串对象,或者它会引用前一个对象?
这里的问题是,Java 在克隆和创建字符串的新对象时是否对待字符串不同??
【问题讨论】:
-
我认为您必须更具体地了解您的术语。 “浅层克隆”就像一个矛盾的说法,因为“浅层复制”和“克隆”是对立的。而Java中的clone这个词也用来描述
clone()方法(一般应该避免使用)。关于new String(),new关键字 always 为您提供了一个新分配的对象。
标签: java string jvm cloning shallow-copy