Java 中的 strcpy 是什么?
String s1, s2;
s1 = new String("hello");
s2 = s1; // This only copies s1 to s2.
最佳答案
这个声明:
s2 = s1;
将 s1
的值复制到 s2
中。该值只是一个引用,所以现在 s1
和 s2
指的是同一个对象。因此,如果这是一个可变类型(例如 StringBuilder
或 ArrayList
),那么您就应该担心了。
但是,String
是不可变的。您不能修改对象来更改其文本数据,因此只需复制引用就足够了。更改 s2
的值以引用不同的字符串(或将其设为 null
引用)将不会更改 s1 的值
:
String s1 = "hello";
String s2 = s1;
s1 = "Something else";
System.out.println(s2); // Prints hello
如果您真的想要创建一个新的String
对象,您可以使用您已经(不必要地)用于s1
的构造函数:
s2 = new String(s1);
但是,这很少是个好主意。
关于java - Java 中的 strcpy 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12177273/