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

来源:3-4 Java中的比较运算符

慕粉4047569

2017-08-19 15:33

String str1="hello";

String str2="hello";

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


输出结果 为撒 是 true

写回答 关注

3回答

  • 慕虎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此时指向的内存是不同的

    慕粉4047...

    非常感谢!

    2017-08-20 10:19:59

    共 1 条回复 >

  • 慕先生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

    你说风来了 回复慕粉4047...

    能说说不?我不会。。。

    2018-07-22 21:35:01

    共 3 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165168 学习 · 17581 问题

查看课程

相似问题