sstrl==str2 :sstr1是sstr2的一个引用;
sstr1.equals(sstr2):返回值是一个boolean值,它比较两个字符串的值是否相等;
sStr1.compareTo(sStr2):返回值是一个整数,compareTo()不仅比较大小,还确定了排列的顺序。
如果sStr1大于sStr2,返回一个正整数,如果sStr1小于sStr2,返回一个负整数,如果sStr1等于sStr2,返回0。
sstr1.equals(sstr2):返回值是一个boolean值,它比较两个字符串的值是否相等;
sStr1.compareTo(sStr2):返回值是一个整数,compareTo()不仅比较大小,还确定了排列的顺序。
如果sStr1大于sStr2,返回一个正整数,如果sStr1小于sStr2,返回一个负整数,如果sStr1等于sStr2,返回0。
System.out.println("string1:"+ sStr1);
System.out.println("strint2:"+ sStr2);
System.out.println("same object? "+(sStr1==sStr2)); // (1)这一句怎么是same object? false 呀能不能讲解讲解 谢谢
sStr2=new String(sStr1);
System.out.println("string1:"+ sStr1);
System.out.println("strint2:"+ sStr2);
System.out.println("same object? "+(sStr1==sStr2)); // (1)
====================================
sStr1="using java language"; //初始化一个字符串
sStr2=new String(sStr1); //新建一个字符串对象,两者的值一样,但是却指向不同的内存空间
//所以sStr1==sStr2 返回的是false,如果要比较两个字符串的内容是否相等,要用equals方法
sStr1==sStr2不仅比较其内容是否相同,还比较其是否是指向同一个内存地址的。再看看第一个比较:
sStr1="using java language";
sStr2=sStr1;
System.out.println("string1:"+sStr1);
System.out.println("string2:"+sStr2);
System.out.println("same objext? "+(sStr1==sStr2));
这里sStr1="using java language";先初始化一个字符串
sStr2=sStr1;这一步,将sStr2也指向了sStr1的地址,即同一个字符串“using java language”
所以,此时,不仅内容相同,而且连地址也一样,于是返回true。懂了嘛?