原文:两个 Long 类型为什么不能直接用==比较

这要说到 和 equals 的区别了。 . 比较的是两个对象在内存中的地址值 栈中的内容 。 .equals 是 java.lang.Object 类的一个方法。equals 比较的是两个对象的内容 堆中的内容 。java 中所有的类都默认继承于 Object,所以所有的类都有这个方法。 但是 Long 是一个对象,是对 long 的封装。我们看一下 Long 对象的源码,里面的 equals 方 ...

2016-04-01 20:39 0 5793 推荐指数:

查看详情

Long类型比较不能直接用等于

在判断两个Long型数据是否相等的时候遇到了一个问题。 使用“==”的疑问 if (user.getId() == admin.getId()) { return true; } else { return false; } 两个Long型的ID之间的比较,结果却是false。再看 ...

Wed Nov 08 23:45:00 CST 2017 0 8544
比较两个日期(SYSTEMTIME类型)的大小

这种方法有时候会出错,虽然两个都是无符号的时间,但是SYSTEMTIME其中有个wDayOfWeek会影响内存比较。正确的做法是,将wDayOfWeek这个值都置为0,改变这个值不影响比较。 ...

Tue Mar 24 00:30:00 CST 2020 0 1018
Java中判断两个Long类型是否相等

在项目中将两个long类型的值比较是否相等,结果却遇到了疑问? 下面就陪大家看看一个神奇的现象! 1.1问题?为什么同样的类型,同样的值,却不相等呢? 1.2那么我们就需要探索一下源码了 源码中显示,Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间 ...

Thu Apr 04 19:59:00 CST 2019 0 16533
Java中判断两个Long类型是否相等

1.现象描述 请看下面的现象: 现象1: 现象2: 有没有被惊到?现象1和现象2结果不一样,现象2使用==判断两个Long类型的值,结果竟然是false! 2.原理说明 源码中初始化时会执行valueOf方法,其方法如下: 也就是说这个值在-128到127之间会使 ...

Sat Oct 30 22:08:00 CST 2021 0 1548
Java中判断两个Long类型是否相等

在项目中将两个long类型的值比较是否相等,结果却遇到了疑问? 下面就陪大家看看一个神奇的现象! 1.1问题?为什么同样的类型,同样的值,却不相等呢? 1.2那么我们就需要探索一下源码了 源码中显示,Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间 ...

Thu Jun 18 21:52:00 CST 2020 0 708
关于Java Integer和Long直接比较

Integer和Long不能直接equals比较会返回False Long.class源码 ` ` Integer.class源码 ` ` 解决方法 Long变量.equals(Integer变量.longValue()) 返回True ...

Fri Nov 27 17:34:00 CST 2020 0 1299
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM