sstrl==str2 :sstr1是sstr2的一个引用;
sstr1.equals(sstr2):返回值是一个boolean值,它比较两个字符串的值是否相等;
sStr1.compareTo(sStr2):返回值是一个整数,compareTo()不仅比较大小,还确定了排列的顺序。
如果sStr1大于sStr2,返回一个正整数,如果sStr1小于sStr2,返回一个负整数,如果sStr1等于sStr2,返回0。

解决方案 »

  1.   

    sStr2=new String(sStr1);
    System.out.println("string1:"+ sStr1);
    System.out.println("strint2:"+ sStr2);
    System.out.println("same object? "+(sStr1==sStr2));   // (1)这一句怎么是same object? false 呀能不能讲解讲解        谢谢
      

  2.   

    sStr1="using java language";
    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。懂了嘛?
      

  3.   

    创建一个String类的对象,给它初始化的时候应该是字串,所以你new一个之后,虽然初始化用的是sStr1,但是只是传递的只是sStr1的值。所以还是不同的两个对象。
      

  4.   

    新建一个字符串对象,两者的值一样,但是却指向不同的内存空间sStr1==sStr2不仅比较其内容是否相同,还比较其是否是指向同一个内存地址的。sstr1.equals(sstr2):返回值是一个boolean值,它比较两个字符串的值是否相等;sStr1.compareTo(sStr2):返回值是一个整数,compareTo()不仅比较大小,还确定了排列的顺序。我懂了,谢谢各位大虾的详细讲解。     谢谢      以后多多指教,在次感谢~~~~