为了账号安全,请及时绑定邮箱和手机立即绑定

java中==不是只能判断数值类型吗?为什么可以判断空字符串,输出为true?

java中==不是只能判断数值类型吗?为什么可以判断空字符串,输出为true?

MM们 2019-03-21 18:15:34
public class Test {    public static void main(String[] args) {        String s ="";        System.out.println(s=="");    }}《《《《《《《《《《《《《《《《《《《《输出为true
查看完整描述

5 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

用双引号创建的相同内容的字符串,均指向同一个引用。而new String出来的是新的一个对象。这也是为什么要尽量避免new String

<pre>


public class StringEqualsTest{

    public static void main(String[] args) {

        String s1="Gavin";

        String s2=new String("Gavin");


        System.out.println("Gavin"==s1);

        System.out.println("Gavin"==s2);

    }

}


$java StringEqualsTest 

true

false


查看完整回答
反对 回复 2019-04-16
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

String不是基本数据类型,所以使用==是比较的内存地址。


查看完整回答
反对 回复 2019-04-16
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

网上关于Java的==和equals()的介绍很多,随便浏览几篇你就可以明白这个问题,这个问题表面很简单,但是越往后就会越深入。


查看完整回答
反对 回复 2019-04-16
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

java中==不是只能判断数值类型吗?
答:不是,==可以判断基本数据类型(数值类型)、对象。

查看完整回答
反对 回复 2019-04-16
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

==比较的是字面值
字符串为引用类型,且已建立的字符串在内存不可变,s引用的是""串的内存地址,相同的地址比较自然一样

查看完整回答
反对 回复 2019-04-16
  • 5 回答
  • 0 关注
  • 604 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信