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

public class Test {

public static void main(String[] args) {

String s ="";

System.out.println(s=="");

}

}

《《《《《《《《《《《《《《《《《《《《

输出为true

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

 
 

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

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

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

楼主 可以先去理解下 引用比较和值比较

java中==不是只能判断数值类型吗?

答:不是,

==

可以判断基本数据类型(数值类型)、对象。

==比较的是字面值

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值