在项目中有如下语句: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