java中字符串判断相等能用不等号吗

   在项目中有如下语句:Global.NOT_RESTRICT !=companyGroupInfo.getSex()  也就是“NR” != "NR" 返回true(明明应该返回FALSE呀)

字符串在内存中是在字符串池中,如果字符串池已经存在字符串就直接引用地址即可。为什么此时就不行了。经过代码的一番验证发现,如果不涉及数据库,只是java代码对于字符串常量进行操作。Global.NOT_RESTRICT !=companyGroupInfo.getSex() 这一直返回FALSE。如果对象是从数据库里面查询出来就会是true,也就是如果涉及数据库两个常亮不再引用同一地址。

结论:在项目中对于字符串的操作必须用equals,以避免不必要的bug


java中字符串判断相等能用不等号吗,布布扣,bubuko.com

文章来自:http://blog.csdn.net/zl544434558/article/details/38413861
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3