猿问

看看输出的第一行为什么是false


  String a = "hello2";

String b="hello";

String c = b + 2;

                String d="hello2";

        System.out.println(a==c);

        System.out.println(a==d);


qq_毅往情深_0
浏览 1639回答 4
4回答

慕大叔

这里的加是个字符连接运算符,String c = b+'2'才对吧

qq_伊人千百度_0

String判断是否相等可以用 .equal();  方法   直接相等的话是比较它们的地址

一条小咸鱼

求解?

无聊的缄默

因为String是不可变对象     c是使用 + 运算符 把 hello 和 2 拼接 而成的 新字符串对象 和  a指向的 hello2 并不是同一个String对象   使用 == 比较 是比较  值  在这里  是比较  a和c的地址值 因为 a和c不是同一个对象  所以 得到false
随时随地看视频慕课网APP

相关分类

Java
我要回答