您好,欢迎来到世旅网。
搜索
您的当前位置:首页null和""以及==和equals的那些事儿

null和""以及==和equals的那些事儿

来源:世旅网

前言

最近总是会遇到一些关于判断字符串是否为空的问题?之前总是觉得很简单,心想不就是让一个字符串等于null或者者“”或者用equals吗?但后来在使用的过程中报错了才意识到原来这三个是有区别的!

String的==和equal()

关于str.equal(“abc”)和”abc”.equal(str)

这个好像争论也挺多的,第一种常量写在后面可能符合大多数人的习惯,也符合我们的逻辑思维。但是需要多一个str是否为null的判断。否则这里是有可能出现异常的。而后一种写法不需要多做关于是否为null这个判断。就我个人喜好来说,比较喜欢后一种写法。

String的null和“”

String str1 = null; str引用为空     
String str2 = ""; str引用为空串     

直接点就是null没有分配内存空间,而""分配了内存空间,因此str1还不是一个实例化的对象,而str2已经实例化。     

注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){....}和if(str2.equals("")){....}     

内存地址比较用equalsnull用等号比较。    

因此,如果str1=null;下面的写法错误:     
if(str1.equals("")||str1==null){    
//如果str1没有值,则返回false    
}     
正确的写法是 if(str1==null||str1.equals("")){     
//先判断是不是对象,如果是,再判断是不是空字符串     
}     

小结

具体情况具体分析,视情况而定!

感谢您的阅读~~

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有 湘ICP备2023023988号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务