本文共 1264 字,大约阅读时间需要 4 分钟。
java当中的数据类型和“==”的含义:
基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。
注:对于第二种类型,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为每new一次,都会重新开辟堆内存空间。
== 的作用:
基本类型:比较的就是值是否相同
引用类型:比较的就是地址值是否相同
equals 的作用:
引用类型:默认情况下,比较的是地址值。
注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同
==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较;
equals():比较的是两个字符串的内容,属于内容比较。
如下列
if("OC".equals(list.get(i).getShopId()) && list1.get(i).getValueCate().equals("LOSC")){if(list1.size() > 0 ){for( int j = 0 ; j < list1.size() ; j++){if((list.get(i).getRuleSeqIdFk().toString() == (list1.get(j).getRuleSeqId().toString()))){ //这一行代码用 ==,你会发现 == 两边的结果都一样,但是整个if的结果是false。String LossCode1 = list1.get(j).getValue();LossCode = LossCode1;String userMessage1 = list.get(i).getRuleSeqIdFk() + "_" + list.get(i).getEvtUser()+ "_" + relationId + "_" + itemName + "_" + list.get(i).getHappenTime() + "_" + list.get(i).getProdId() + "_" + list.get(i).getRecipeId() + "_" + list.get(i).getLotId()+ "_" + list.get(i).getOpeId() + "_" + list.get(i).getEqptId() + "_" + list.get(i).getOoc() + "_" + list.get(i).getOos()+ "_" + itemValue + "_" + LossCode + "_" + list.get(i).getRuleComment();userMessage = userMessage1;}}}}
转载地址:http://ikeqj.baihongyu.com/