JAVA中null,"",equals,==相互之间使用详解
2016-06-28 17:51
387 查看
判断语句 if(a.equals(null)){} 和 if(null.eauals.(a)){}判断语句
if(a.equals(null)){} 和 if(null.eauals.(a)){}
要明白他们两个的区别首先要知道他俩分别比较的是什么。
先说==。当比较的两边是8种基本数据类型时,==比较的就是变量里的值。举个例子
当==比较的是对象的时候,比较的并不是变量里的值,而是比较的对象在内存中的地址了。举个例子
然后是equals,这个稍微复杂一点。首先equals方法是所有类的父类Object类里的方法,当子类没有重写equals方法时,调用的是Object类里的equals方法,Object里的equals方法只是简单的比较了一下两个变量的地址。
String类就重写了Object类的equals方法,所以当调用String类的equals的方法时比较的就是字符串是否相等了。还用上面那个例子说明下
equals是方法,要保证调用equals方法的变量不能为空,所以就不能使用null.eauals.(a),这样会报空指针异常。
a==null与 null==a
null放在前面就是为了避免变量为空时 引了空指针异常
如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法,当然会引发空指针异常了,但写成if(null==a)就不会了
if(str==null||str.equals("")){
return 0;
}
因为在java里,String是一个对象,如果对象不存在,就返回0,或对象存在,但包含的字符为"",也返回0,上面那if就是这个意思了。a==null与 null==a
null放在前面就是为了避免变量为空时 引了空指针异常
当equals传入的参数是null的时候,和a==null的效果是一样的。
如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法,当然会引发空指针异常了,但写成if(null==a)就不会了
if(str==null||str.equals("")){
return 0;
}
因为在java里,String是一个对象,如果对象不存在,就返回0,或对象存在,但包含的字符为"",也返回0,上面那if就是这个意思了。
if(a.equals(null)){} 和 if(null.eauals.(a)){}
要明白他们两个的区别首先要知道他俩分别比较的是什么。
先说==。当比较的两边是8种基本数据类型时,==比较的就是变量里的值。举个例子
1 2 3 | int i = 1 ; int j = 1 ; System.out.print(j == j); //这里输出为true,1等于1 |
1 2 3 | String str = new String( "hello" ); String str1 = new String( "hello" ); System.out.print(j == j); //这里输出为false,str和str1两个变量的在内存中的地址不一样 |
String类就重写了Object类的equals方法,所以当调用String类的equals的方法时比较的就是字符串是否相等了。还用上面那个例子说明下
1 2 3 | String str = new String( "hello" ); String str1 = new String( "hello" ); System.out.print(str.equals(str1)); //这里输出为true,两个变量里的字符串都是hello |
a==null与 null==a
null放在前面就是为了避免变量为空时 引了空指针异常
如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法,当然会引发空指针异常了,但写成if(null==a)就不会了
if(str==null||str.equals("")){
return 0;
}
因为在java里,String是一个对象,如果对象不存在,就返回0,或对象存在,但包含的字符为"",也返回0,上面那if就是这个意思了。a==null与 null==a
null放在前面就是为了避免变量为空时 引了空指针异常
当equals传入的参数是null的时候,和a==null的效果是一样的。
如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法,当然会引发空指针异常了,但写成if(null==a)就不会了
if(str==null||str.equals("")){
return 0;
}
因为在java里,String是一个对象,如果对象不存在,就返回0,或对象存在,但包含的字符为"",也返回0,上面那if就是这个意思了。
相关文章推荐
- Java动态代理
- 搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)
- 深入理解Java的接口和抽象类
- Spring Boot新模块devtools
- Java设计模式 -- 观察者模式
- Struts2拦截器权限学习心得
- Eclipse导出doc文档以及编码 GBK 的不可映射字符
- Arrays.asList()和Collections.addAll()的性能比较
- spring spel表达式语言
- spring boot 不同的环境使用不同的配置
- java IO之文件输入输出流
- 构建自己的Java Web框架(三)之JAVA反射机制
- Java内部类和外部类互相访问问题
- Java设置session超时(失效)的三种方式
- jdk1.8 ThreadPoolExecutor实现机制分析
- eclipse转成Android studio过程中遇到的问题
- spring boot 静态页面展示
- MyEclipse for mac retina屏模糊的问题
- 一个分布式Java Web Session
- eclipse一些设置方法