public class TestString {
public static void main(String [] args) {
String s1 = new String("hellow");
String s2 = "hellow";
String s3 = new String("hellow");
System.out.println("s1和s2 "+s1==s2);
......   我不明白 为什么 "s1和s2 " 不打印出来呢???

解决方案 »

  1.   

    优先级的问题System.out.println("s1和s2 "+s1==s2); 相当于System.out.println(("s1和s2 "+s1)==s2);
      

  2.   

    System.out.println("s1和s2 "+s1==s2);
    你这样写就是 "s1和s2 "+s1 然后再和s2比较
    System.out.println("s1和s2 "+(s1==s2));
      

  3.   

    另外 说明一下,3个字符变量不相等。共有3个对象。
    String s1 = new String("hellow");//新建字符串池对象,新建堆中对象
    String s2 = "hellow";   已有字符串池对象,无需创建
    String s3 = new String("hellow"); //新建堆中另一个对象,已有字符串池对象,无需创建