java判空

一、概述

java中判等似乎很简单,==用来判断对象引用(内存地址)是否相同,equals用来判断值是否相同。你可以试用String对象轻松区分这一点。

那么在null判等(也就是判空操作)时呢?

可以通过如下代码明白两个判等的比较:

String name = null;
if(null==name){
     System.out.println("null==name");//通过
 }
if(name==null){
      System.out.println(name);
      System.out.println("name==null");//通过
}
String list = null;
if(!"demo".equals(list)){
     System.out.println("demo.equals(list)");//通过
}
//编译器会在此处提示一个警告:Null pointer access: The variable list can only be null at this location
if(!list.equals("demo")){
     System.out.println("list.equals(demo)");//不通过
 }

1.通过代码证明了String类型在==判等时

谁放前,谁放后是一样的。而null==xxxx这样的写法,我觉得只是一个规范习惯的方式,保证你不会少写=,因为你写null=xxx编译器肯定会给你报错。

那么,除了String类型的对象,其他类型的对象呢?是否在试用==时也是谁放前谁放后没有区别呢?

NullEquals e = null;
if(e==null){
    System.out.println("e==null");//通过
}
if(null==e){
     System.out.println("null==e");//通过
}

结果也一样,证明了null判等这件事上,哪种对象是无所谓的,谁放前放后都可以。

2.通过上面的代码证明了使用equals方法时,必须将非空的对象放在前面,null的对象一定不能放在前面。

所以这里要养成"".equals()方法来判空的操作

二、注意

这两个判等操作墨守成规的,你实现某个类,重写它的equals方法最好也是用来判断他们的值是否相等,否则其他程序员在使用时容易误会。

总结:判空时,养成null在前是个好习惯

   判等时,为了避免被判断对象可能为空,所以把肯定不为空的对象放到前面是个好习惯

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值