java null与空的区别_null和空(“”)Java字符串之间的区别

小编典典

“”是实际的字符串,尽管是空的。

但是,null表示String变量不指向任何内容。

a==b 返回false,因为“”和null不占用内存中相同的空间-换句话说,它们的变量不指向相同的对象。

a.equals(b) 返回false,因为”“显然不等于null。

区别在于,由于“”是实际的字符串,因此你仍然可以像上面那样调用方法或函数

a.length()

a.substring(0, 1)

等等。

如果String等于null,例如b,那么NullPointerException如果你尝试调用Java,它将抛出a ,例如:

b.length()

如果你想知道的差异是==与equals,那就是:

==比较引用,就像我去了一样

String a = new String("");

String b = new String("");

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

由于我分配了两个不同的对象,而a和b指向不同的对象,因此输出false。

但是,a.equals(b)在这种情况下将返回true,因为equals对于且仅当参数String不为null且表示相同的字符序列时, String才会返回true 。

但是请注意,Java对于字符串确实有特殊情况。

String a = "abc";

String b = "abc";

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

你会认为输出为false,因为它应该分配两个不同的字符串。实际上,Java会实习文本字符串(在我们的示例中像a和b一样初始化的字符串)。因此请当心,因为这可能会给==的工作原理带来一些误报。

2020-03-05

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值