Java中如何比较两个Long值是否完全相同?
- 内容介绍
- 文章标签
- 相关推荐
本文共计433个文字,预计阅读时间需要2分钟。
目录
一、为什么相同的类型,相同的值,却不相等呢?
二、探索一下源代码
1. 解决方案 1. 可以使用.longValue()方法 2. 使用.equals()进行比较 2. 例子 1. 为什么相同的类型,相同的值,却不相等?目录
- 一、为什么同样的类型,同样的值,却不相等呢?
- 1、探索一下源码
- 二、解决方案
- 1、可以使用.longValue()
- 2、equals()进行比较
- 三、例子
一、为什么同样的类型,同样的值,却不相等呢?
1、探索一下源码
源码中显示,Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。
如果值在[-128, 127]之间,会放在缓存里面,而超过这个范围就要new一个新的对象,也就是说==不能判断对象是否相等。当然,如果值是在[-128, 127]之间的话是测不出来什么问题的。
本文共计433个文字,预计阅读时间需要2分钟。
目录
一、为什么相同的类型,相同的值,却不相等呢?
二、探索一下源代码
1. 解决方案 1. 可以使用.longValue()方法 2. 使用.equals()进行比较 2. 例子 1. 为什么相同的类型,相同的值,却不相等?目录
- 一、为什么同样的类型,同样的值,却不相等呢?
- 1、探索一下源码
- 二、解决方案
- 1、可以使用.longValue()
- 2、equals()进行比较
- 三、例子
一、为什么同样的类型,同样的值,却不相等呢?
1、探索一下源码
源码中显示,Long中有一个静态的内部类LongCache,专门用于缓存-128至127之间的值,一共256个元素。
如果值在[-128, 127]之间,会放在缓存里面,而超过这个范围就要new一个新的对象,也就是说==不能判断对象是否相等。当然,如果值是在[-128, 127]之间的话是测不出来什么问题的。

