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

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

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

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


你可能感兴趣的:(java,字符串,相等判断)