java - 克隆字符串数组,检查引用

标签 java clone

克隆字符串数组,使用java数组上的clone()方法。克隆后,我期望在新数组中包含新字符串 - 并为它们分配新地址。但是...我的行为有点不同,请看一下:

(它将打印:

same address
One

)

public class ArrayCopyClone {

    static String[] array2 = new String[] {"One", "Two", "Three"};

    public static void main(String[] args) {

        String[] copy2 = array2.clone();

        if (copy2[0] != array2[0])  {
            System.out.println("good");   // will never show up
        } else {
           System.out.println("same address");  // I'm expecting never be here
        }

        array2[0] = "new";

        System.out.println(copy2[0]); // "One", and this is OK (it means we have a copy)

    }

}

与字符串阴影有关吗?应该是吗?

最佳答案

克隆数组会产生浅拷贝。所以内容是一样的。对于深度克隆,请参阅 here .

关于java - 克隆字符串数组,检查引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14836539/

相关文章:

java - 如何在android中正确地重用模板/xml

java - Eclipse 格式化程序 : conditional expression on same indentation level

c - Linux克隆 "kills"主线程

ruby - 对象可以 `respond_to` 消息但在调用时引发错误?

Jquery克隆html中的元素

c# - Bitmap.Clone() 和 new Bitmap(Bitmap) 有什么区别?

java - 通过 JDBC 语句执行 DDL 时出错,并且我找不到语法错误

Java JComboBox 图标

java - java运行时安装JDK

oracle - 克隆Oracle数据库架构