java判_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在前是个好习惯
判等时,为了避免被判断对象可能为空,所以把肯定不为空的对象放到前面是个好习惯
注:以上代码都经过测试
java判_java中判空相关推荐
- hive 判断子字符串_Java中检查空字符串(null或空白)的方法有几种?
说明: 本文为牛旦教育原创,头条首发,转发须注明来源和原文网址. 1.摘要 在本文中,我们将介绍些方法检查Java中的空字符串(空的或空白符串).我们有些语言的原生方法以及几个库可用. 2.空与空白( ...
- java 程序计数器_Java中的程序计数器是什么
程序计数器是当前线程正在执行的字节码的地址.程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器. JAVA虚拟机管理的内存区域图 1.什么是程序计数器? 程序计数器是当前线程正在执行的 ...
- java 事务_Java中事务总结详解(精华)
1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...
- [转载] c++多态与java多态性_Java中的多态性
参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...
- java 且_JAVA中逻辑运算符“|”和“”与“||”和“”的用法
1.使用规则: (1)& 可以用作逻辑与的运算符,表示逻辑与(and) a.当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false ...
- java 包装类_Java中的包装类
Java中哪些需要包装类 它们将原始数据类型转换为对象.如果我们希望修改传递给方法的参数,则需要对象(因为基元类型是按值传递的). java.util包中的类只处理对象,因此在这种情况下包装类也有帮助 ...
- java 难度_java中难度大一点的面试题
1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...
- math java 计算_Java中的数学计算函数汇总
Math类: java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...
- java中的多态性_[转载] c++多态与java多态性_Java中的多态性
参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...
最新文章
- poj 2831(次小生成树)
- 数据可视化【十】绘制地图
- 利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup
- PyTorch框架学习三——张量操作
- JavaScriptSerializer 类
- 修正 Mui 下拉上拉刷新功能
- jsp自定义标签库打包步骤
- Java课程设计——学生成绩管理系统
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
- Ubuntu18 安装MeshLab软件
- Linux服务器CPU飙升排查
- NOIP模拟赛 队爷的讲学计划
- Android 分享功能之 微信 图片分享
- csdn里面代码块颜色
- 《我的眼睛--图灵识别》第十一章:实战演练:图像类识别
- 图傅里叶变换(GFT)
- 力扣-374题 猜数字大小(C++)- 二分
- echarts实现河南各省市区县地图(河南省各省市区县地图json文件可以在我博客里下载)
- 语言学大师 —— 乔姆斯基
- Master of Phi (欧拉函数 + 积性函数的性质 + 狄利克雷卷积)
热门文章
- java源代码实例倒计时_Java倒计时三种实现方式代码实例
- linux分区始柱号,找到了linux分区顺序错乱修复方法
- java core 生成路径_core文件生成和路径设置
- sata接口测试软件,如何查看电脑是否支持USB 3.0?Hwinfo32检测SATA端口的方法
- mysql semisync 恢复_mysql半同步复制(semi_sync_replication)搭建及使用
- 谷歌浏览器如何使用网页截图
- 腾讯视频上如何上传视频
- 搜狐视频怎么设置自动连播
- Android对接实现内网无纸化会议|智慧教室|实时同屏功能
- Easyui+Spring+Mybatis完整示例(前台)