String 和 new String
String s1=”welcome”;
String s2= “welcome:;
String s3 =new String(”welcome”); //新建对象 指向新的内存 比较内容相同 但是地址不同
System.out.println(s1.equals(s3));
System.out.println(s1 ==s3);
== 是比较内存地址
equals 是比较内容
在s1 和s2比较的时候,他们都引用了同一块内存地址,所以他们 ==和equals 都是true
但是在s1和s3比较的时候, 因为s3是new String ,相当于在内存中新建了一个对象 ,指向了一块新的内存地址,
所以在比较==的时候,引用地址是不同的 ,报false,比较equals的时候是相同的
人生是一场难得的修行,不要轻易交白卷。
----与君共勉