问答详情
源自:3-4 Java中的比较运算符

String 类型不是引用类型 str1 和str2 比较的话 不是表示地址的比较吗

String str1="hello";

String str2="hello";

System.out.print("str1等于 str2:"+(str1==str2));


输出结果 为撒 是 true

提问者:慕粉4047569 2017-08-19 15:33

个回答

  • 慕虎3005618
    2017-08-19 22:49:11
    已采纳

    因为这两个变量指向的内存是一样的,都是“”hello“”所以返回true,如果改成

    String s1 = new String("hello");

    String s2  = new String("hello");

    System.out.println(s1==s2);    // 返回fasle

    System.out.println(s1.equals(s2));  //此时只能使用equals比较,因为s1和s2此时指向的内存是不同的

  • 慕先生0420947
    2017-08-19 22:24:46

    将System.out.print("str1等于 str2:"+(str1==str2));

    改成

    System.out.print("str1等于 str2:"+(str1.equals(str2)));

  • qq_不忘初心方得始终_16
    2017-08-19 15:58:19

    这个是字符串长度的比较,str1 与str2 是变量名称不是类型,maybe