java字符串的复制问题以及相等的判断
最近在学习java基础的过程中,遇到了一些不太熟悉的地方,在此做一下记录
如下展示 代码片段
。
public class Test {
public static void main(String [] args) {
String s1 = "a";
String s2 = "a";
System.out.println(s1==s2);
System.out.println(s1);
System.out.println(s2);
String s3 = new String("a");
String s4 = new String();
s4 = "a";
System.out.println(s3==s1);
System.out.println(s3.equals(s1));
}
}
代码段里展示了s3和s4两种不同的字符串创建和赋值方法,
s3的创建方法中,所占用的内存空间与s1和s2不同;
s4开始创建空串的时候,也与s1和s2不同;
但是当对s4的值进行重新注入与s1相同的值时,s4的地址与s1和s2相同。