今天遇到这样一个问题,我用 "=="来比较两个Long类型的数据,明明数值都相等,可是结果就是false

这要说到==和 equals 的区别了。

1. ==比较的是两个对象在内存中的地址值(栈中的内容)。

2.equals 是 java.lang.Object 类的一个方法。equals 比较的是两个对象的内容(堆中的内容)。java 中所有的类都默认继承于 Object,所以所有的类都有这个方法。

但是 Long 是一个对象,是对 long 的封装。我们看一下 Long 对象的源码,里面的 equals 方法是这么写的:

public boolean equals(Object obj) {

if (obj instanceof Long) {

return value == ((Long)obj).longValue();

}

return false;

}

所以两个 Long 类型的变量进行比较的话,要么用 equals,要么先调用longValue 方法,拿到里面的 long 值之后再进行==比较。

Long在java中是一个引用类型,而long类型是java中的一个基本数据类型,用来表示数值。

Long类型数据比较:

1.Long对象的.equals()方法:

Long l1 =new Long(10);

Long l2 =new Long(10);

System.out.println(l1.equals(l2));

2.Long对象的longValue()方法

Long l1 =new Long(10);

Long l2 =new Long(10);

System.out.println(l1.longValue() == l2.longValue());

long类型数据的大小比较:

可以直接用 '>' '=' '

long l1 =10;

long l2 =15;

System.out.println(l1 == l2);

System.out.println(l1 > l2)

文章来源: www.oschina.net,作者:warm-Y,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/warm6Y/blog/3102977

java中long比较大小_java中Long类型比较大小和long类型的比较大小java中Long类型比较大小和long类型的比较大小...相关推荐

  1. java split空值也保留_Java内存大家都知道,但你知道要怎么管理Java内存吗?

    前言 深入研究Java内存管理,将增强你对堆如何工作.引用类型和垃圾回收的认识. 你可能会思考,如果你使用Java编程,关于内存如何工作你需要了解哪些哪些信息?Java可以进行自动内存管理,而且有一个 ...

  2. java 替换多个字符串_Java一次(或以最有效的方式)替换字符串中的多个不同子字符串...

    小编典典 如果你要处理的字符串很长,或者你要处理许多字符串,那么使用java.util.regex.Matcher可能是值得的(这需要花很长时间进行编译,因此效率不高) (如果你的输入很小或搜索模式经 ...

  3. java中比较两个文件的大小_Java实现获取文件大小的几种方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.i ...

  4. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  5. java中是否支持多重继承_java支持多重继承吗 JAVA特性面试题:

    1.简要介绍java程序的健壮性. 答:JAVA程序会在编译和运行的时候自动的检测可能出现的错误,而且它是一种强类型语言,对于类型的检查很严格,而且它的垃圾回收机制也有效的避免了内存的泄漏. 2.为什 ...

  6. java boolean几个字节_Java中boolean类型到底占用多少个字节?

    1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...

  7. java string 后几位_java中String占几个位元组

    java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...

  8. java set第n位_Java学习路线:float在内存中的存储

    Java学习路线:float在内存中的存储,最近在讲Java基础,讲到数据类型的转换,提到整数类型长字节类型数据放到短字节类型数据中时,由于字节数不够,会截断数据,所以需要程序员手动强制类型转换,例如 ...

  9. java中类型转换的造型_Java总结篇系列:类型转换/造型

    Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用. 首先, ...

最新文章

  1. usaco Home on the Range
  2. python正则匹配所有的中文,数字和英文
  3. linux跟aix时间同步,Linux 与AIX环境下修改时间
  4. 欢迎来到开源的世界!
  5. Flink 1.7 文档翻译活动期待大家的参与 | ApacheCN
  6. 阵列天线方向图-均匀直线/平面阵列matlab仿真
  7. Ubuntu 18.04联网问题(已解决)
  8. [ZGC升级记录](to-space exhausted/Evacuation Failure)
  9. 在 Go 中处理恐慌
  10. python如何收集数据库_python 整理web数据库
  11. [渝粤教育] 中国地质大学 人力资源开发与管理 复习题 (2)
  12. webp文件_什么是WebP文件(以及如何打开一个文件)?
  13. 模块“Upgrade”启动失败。 未能启动虚拟机。虚拟机VMware不支持的硬件版本【终极解决方案】
  14. Spring同一个类事务处理
  15. 奇兔recovery卡刷教程_奇兔Recovery(安卓手机刷机助手)V8.2.1.4 最新版
  16. GIMP如何制作一只大佬猫头像
  17. 认识Python控制流
  18. net stop mysql 发生系统错误5
  19. S参数和史密斯圆问题
  20. Verilog实现4位按键分别控制蜂鸣器发出不同音阶(未完成,请指导)

热门文章

  1. linux上安装lftp
  2. 概率论与数理统计 —— 概率论的基本概念
  3. 若依前后端分离版获取部门表所有最子级部门并匹配部门名称生成excel
  4. 现在有个字符串是按照如下格式保存的:“姓名:成绩|姓名:成绩|…..”
  5. Andriod电子词典查询功能的实现
  6. CTF网络安全竞赛签到题
  7. 百度云音视频直播服务(LSS)的使用流程
  8. Oracle本地管理的表空间
  9. Beta Round #43 (ACM-ICPC Rules), problem: (E) Comb 优先队列+晦涩题意
  10. 很棒的 Django 应用程序、项目和资源的精选表单