public class Example5_1 {
public static void main(String args[])
{
String s1,s2;
s1=new String("We are students");
s2=new String("We are students");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
String s3,s4;
s3="how are you";
s4="how are you";
System.out.println(s3.equals(s4));
System.out.println(s3==s4);
}}
结果是什么?
为什么呢?
public static void main(String args[])
{
String s1,s2;
s1=new String("We are students");
s2=new String("We are students");
System.out.println(s1.equals(s2));
System.out.println(s1==s2);
String s3,s4;
s3="how are you";
s4="how are you";
System.out.println(s3.equals(s4));
System.out.println(s3==s4);
}}
结果是什么?
为什么呢?
true
false
true
true
new 会重新分配内存
直接赋值jvm会首先到字符串池中去查找有没有相同的字符串,有的话就取得它的引用,所以相等。