博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
==和equal的区别?
阅读量:3522 次
发布时间:2019-05-20

本文共 1264 字,大约阅读时间需要 4 分钟。

java当中的数据类型和“==”的含义:

  1. 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。

  2. 引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。

  • 注:对于第二种类型,除非是同一个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/

你可能感兴趣的文章
实现自己的权限管理系统(十):角色模块
查看>>
实现自己的权限管理系统(十二):权限操作记录
查看>>
实现自己的权限管理系统(十三):redis做缓存
查看>>
实现自己的权限管理系统(十四):工具类
查看>>
JavaWeb面经(一):2019.9.14
查看>>
JavaWeb面经(二):2019.9.16 Synchronized关键字底层原理及作用
查看>>
JavaWeb面试经:redis
查看>>
牛客的AI模拟面试(1)
查看>>
深入浅出MyBatis:MyBatis解析和运行原理
查看>>
Mybatis与Ibatis
查看>>
字节码文件(Class文件)
查看>>
java中的IO流(一)----概述
查看>>
StringBuilder
查看>>
集合,Collection
查看>>
泛型详解
查看>>
泛型实现斗地主
查看>>
List集合
查看>>
ArrayList集合,LinkedList集合,Vector集合
查看>>
HashSet集合
查看>>
并发与并行,线程与进程
查看>>