最近面试的时候总是遇到这个问题的笔试,以前学的时候没有深究,现在是时候来总结一下了

1.基本类型和包装类

诸如

        new Integer(32)==32new Integer(32).equal(32)...

此时==比较的就是具体的值,所以在此包装类和基本类型就没有区别,且各包装类和各基本类型可以互等,例:

new Integer(32) == 32f;
new Float(32f) ==32d;
new Double(32d) == 32;
//例子只举了3个,其他的自己触类旁通
...

再来看看equal,看了源码,发现包装类的equal都是先进行了 instanceof 判断,之后才是进行值的比较,例:

new Integer(32).equal(new Integer(32));
//instanceof通过,之后比值,为true
new Integer(32).equal(new Float(32f));
//instanceof 不通过,为flase
new Integer(32).equal(32f);
//instanceof 不通过,为flase
new Integer(32).equal(32);
//instanceof 通过,比值,为true
//至于其他的自己触类旁通,其他包装类不再举例

2.包装类和包装类

new Integer(32) .equals( new Integer(32))
//instanceof 通过,比值,为true
new Integer(32) == new Integer(32);
//这时候直接比较的就是类,类与类一般是不会==的, 为false
new Integer(32) .equals( new Float(32f))
//instanceof 不通过,为false
new Integer(32) == new Float(32f);
//这就很明显为false了

3.基本类型和基本类型

这个就很明显了,基本都成立

32==32f;
32==32d;
//其他不再举例
...

总结:

在真实值相等的情况下(32与32.0,32f…),==在类与类直接比较时总为false,毕竟内存地址不同,在基本类型都为true,equal方法需先考虑是否通过 instanceof ,之后再进行比值。

关于equal和==相关推荐

  1. java equal hashcode_Java(二)equal 和 hashcode使用

    一.hashCode()和equals()是什么? hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致. Equal 没有重写的equal 使用 ...

  2. 讨论JDK的File.equal()

    我们一般比较两个文件中的对象是相同的文件,通常使用java.io.File.equal().这里,equal()是不是文件内容的比较结果为.象是否指向同一个文件. File的equal()方法.实际上 ...

  3. RuntimeError: each element in list of batch should be of equal size

    RuntimeError: each element in list of batch should be of equal size 示例代码: import os import re from t ...

  4. 语义分割--Not All Pixels Are Equal:Difficulty-Aware Semantic Segmentation via Deep Layer Cascade

    Not All Pixels Are Equal: Difficulty-Aware Semantic Segmentation via Deep Layer Cascade CVPR2017 本文针 ...

  5. logic:equal 标签的使用(转)

    <logic:equal name="music" property="distrubute" value="true">    ...

  6. 记录由Equal基础知识引起的内存泄露

    在最近的公司框架开发中,利用了网上某大牛的反射缓存库作为辅助.在测试的时候发现出现了巨大的内存泄露,在频繁的操作后,内存不断的产生巨大的开销,10多分钟就占有了5,6m的内存.解决问题的时,公司不能上 ...

  7. 无法解决 equal to 操作中 SQL_Latin1_General_CP1_CI_AS 和 Chinese_PRC_CI_AS 之间的排序规则冲突。...

    一个旧有系统需要从另一个新系统获取数据.由于两个系统数据库的的排序规规则不同.在存储过程中SELECT数据时,引发了"无法解决 equal to 操作中 "SQL_Latin1_G ...

  8. LeetCode Minimum Moves to Equal Array Elements II

    原题链接在这里:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/ 题目: Given a non-empt ...

  9. C#中的==、Equal、ReferenceEqual(转载)

    1. ReferenceEquals, == , Equals  Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不是相等. a) ReferenceEqual ...

  10. 【Vegas原创】“無法解析 equal to 動作的定序衝突”错误的处理

    错误:無法解析 equal to 動作的定序衝突. COLLATE Chinese_Taiwan_Stroke_CI_AS 用法: select @EMP_ID=emp_id from am_empl ...

最新文章

  1. 微生物组——宏基因组分析专题培训开课啦!!!
  2. 【bzoj4916】神犇和蒟蒻 杜教筛
  3. samba服务器有什么安全风险_自体脂肪填充面部安全吗?有什么风险?
  4. 【opencv系列04】OpenCV4.X图形绘制
  5. Julia语言:让高性能科学计算人人可用
  6. 2018年春阅读计划---阅读笔记4
  7. GBK、GB2312、GB18030
  8. python爬虫开发 从入门到实战_python网络爬虫从入门到实战开发
  9. html语言及语法结构,HTML语法结构.ppt
  10. 计算机视觉对扫描文件分类 OCR
  11. Spring AOP解析
  12. java中console_Java:如何从System.Console()获取输入
  13. B00015 平方矩阵问题
  14. java实例化是什么意思_什么是java实例化
  15. 应用公园制作app靠谱吗_简单靠谱的app制作工具平台,简直是不可多得啊
  16. 在html中用于设置页面元信息的标示符,在html中用于设置页面元信息的标示符是什么...
  17. JavaScript模拟退火
  18. 机器学习过程步骤总结
  19. openoffice将word转pdf中文乱码或消失的坑
  20. Poco访问mysql

热门文章

  1. 帝国cms系统使用初级教程二(较全面)
  2. c语言中如何识别空格键,在C++中如何判断“空格”键输入?
  3. Machine learning system design - Data for machine learning
  4. 记录一次电脑中病毒后的排查过程
  5. 在yandex投放广告的话,需要注册俄罗斯常用的域名吗?
  6. 苹果域对应关系 Manifest.db文件解析
  7. ndoutils(ndo2db)安装难点
  8. python turtle绘制漫天雪花
  9. 服务雪崩、服务熔断、服务降级
  10. linux 没有dll文件,求助 hai.dll文件丢失 在线等