背景:

因为公司使用的spring jpa 一般表的主键都是Long类型,突然有一次程序好好的跑着啥呀没有改突然死活不进入那个if(entity.id==otherEntity.id) 我开始怀疑人生,开始怀疑Java,开始怀疑Windows是不是系统原因,我甚至开始怀疑是不是硬件原因。最后找不出问题的我,只能求助baidu.com,google.com,但却不知道搜什么,就输入了一个:Long ==Long居然一篇篇看下来,发现了点什么,佩服我的机智。可能还是应了那句古话,帅人有帅报~!

前言:

long数据类型是64位有符号的Java原始数据类型。当对整数的计算结果可能超出int数据类型的范围时使用。long数据类型范围是-9,223,372,036,854,775,808至9,223,372,036,854,775,807(-2^63至2^63-1)。long数据类型范围内的所有整数称为long类型的整数字面量。long类型的整数常数总是以大写L或小写l结尾。

问题:

if( Long == Long )不匹配?

原因:

其实,通过源码分析:

1
2
3
4
5
6
7
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}
在128~127这些数的对象在内存中被缓存起来,在内存中提供重用,这些数获取的时候就会自动获取缓存中的数,而不是new出来的对象。

所以,这与自动打包拆包无关。

再所以…,判读Long对象是否相等的时候建议不要采用 == 的形式,程序中无法绝对的判断参数值是否会在这个区间内,如果不在,那就出现让你摸不着头脑的问题。

解决方案:

entity.getId().longValue()==otherEntity.getId().longValue 完美解决!

这是我的公众号 有最新的it咨询,和个人工作的记录:

这是我的个人微信遇到问题欢迎,提问:

最后加上高质量的淘宝店:如有质量问题随时滴滴我,童叟无欺!

【童装园服定制店铺】https://m.tb.cn/h.ef2J8CD?sm=6e0f74 点击链接,再选择浏览器咑閞;或復·制这段描述¥zfwjY4JVngW¥后到淘♂寳♀

Java 巨坑篇之无底深坑Long类型相关推荐

  1. 去做海外,无数深坑-第一次使用java调用javascript,第一次调用curl

    工作很多年了,发现互联网有着很多以前从来没听过的名词,真是尴尬啊. 前端时间,产品经理提出 [埋点],当时我就有点懵圈,这是啥玩意.后来请求了android的姑娘,大致意思就是我们的操作上报第三方,由 ...

  2. Java泛型进阶篇: 无界通配符、上界通配符以及下界通配符

    专栏文章导航 Java泛型入门篇: 泛型类.泛型接口以及泛型方法 Java泛型进阶篇: 无界通配符.上界通配符以及下界通配符 Java泛型原理篇: 类型擦除以及桥接方法 文章目录 前言 1. 无界通配 ...

  3. JAVA代码覆盖率工具JaCoCo-踩坑篇

    JAVA代码覆盖率工具JaCoCo-原理篇和JAVA代码覆盖率工具JaCoCo-实践篇已经给大家介绍过了,本篇为踩坑篇,这里的话题不是说明JaCoCo有什么问题,而是把过程中遇到的几个棘手问题的解决方 ...

  4. android MultiDex multidex原理原理下遇见的N个深坑(二)

    android MultiDex 原理下遇见的N个深坑(二) 这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑. 不了解的可以先看上篇文章:android MultiDex multi ...

  5. 终于!有本书把我从“拖延+不专注”的低效深坑里救出来了!

    作者:李小墨 来源:深夜书桌(ID:shenyeshuzhuo) 任务进展没有达到自己和其他人期待的速度,是我每天都在面对的一种失败. 但是终于!鬼知道有多久了,终于有本书把我从拖延.不专注的低效深坑 ...

  6. 计算机组装论文关于显示器,显示器参数扫盲—小白入坑篇

    显示器参数扫盲-小白入坑篇 2019-05-01 14:11:35 24点赞 103收藏 20评论 事情经历 上周六(2019年4月27日)在bilibili刷到一个组装台式机的视频,总的算下来花费小 ...

  7. (Oracle踩坑指南)项目建立连接的各种坑 ORA-12541: TNS: 无监听程序等等

    在oracle项目建立连接中的各种坑 吐槽甲骨文一波 安装过程中遇到的问题 问题一:下载 问题二:PLSQL工具 问题三:plsql的使用 问题四:接下来到修改VisualStudio里面的web.c ...

  8. 深坑之Webview,解决H5调用android相机拍照和录像

    最近在开发过程中遇到一个问题,主要是调用第三方的实名认证,需要拍照和录像; 办过支付宝大宝卡和腾讯的大王卡的都知道这玩意,办卡的时候就需要进行实名认证,人脸识别; 本来第三方平台(xxx流量公司)说的 ...

  9. java类型精度排序,Java中BigDecimal精度和相等比较的坑

    为什么要有bigdecimal ,他是干什么的 float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计 ...

最新文章

  1. 网络安全对现在乃至以后,对人们的安全有着重大的保障
  2. qstring 属于元数据类型吗_元数据,描述“数据”的“数据”
  3. jquery获取文档高度和窗口高度的例子
  4. 微软向Chromium贡献代码以优化浏览器滚动体验
  5. MFC关键技术-消息映射机制
  6. 卸载后以前拍的视频会删除吗_可立拍!苹果自己的视频编辑App是一个被忽视的好工具...
  7. js 加载图片无法加载成功,提示:net::ERR_BLOCKED_BY_CLIENT
  8. [笔记]WBS方法论
  9. java 的qq 语音文件怎么打开,用手机java的QQ可以和电脑上的QQ进行语音通话吗?
  10. echarts年龄饼图_ECharts中饼图的操作
  11. H5前端输入和展示 表情 三种解决方案
  12. 帝国cms 留言反馈 问题
  13. 可靠性测试主要注意点
  14. Windows 更改密码策略
  15. 文件系统(内存上的 + 磁盘上的)
  16. Android存储访问框架的使用
  17. 舵机PWM转模拟电压(带正反控制)
  18. win10应用商店打不开_微软上架新版QQ,秒杀正版!升级win10,体验超越原版的自带应用...
  19. android 霓虹灯效果
  20. 如何下载谷歌地球历史地图

热门文章

  1. PDF编辑处理的一条龙服务
  2. Lancet:支持奋战在疫情一线的中国科研技术工作者
  3. 2019微生物组—宏基因组分析技术专题研讨会第四期
  4. vsearch2.8.1使用和命令简介——中文帮助文档(免费64位版usearch)
  5. java 写一个商店_Java Web开发之基于Session的购物商店实现方法
  6. python使用statsmodels包中的adfuller函数执行增强迪基-福勒检验(ADF检验、augmented Dickey-Fuller test)、判断时间序列数据是否平稳
  7. R语言ggplot2可视化:在选定数据点周围添加三角形(Add Triangles Around Select Data Points)
  8. R语言ggplot2可视化交互作用图(Interaction Plot):可视化不同分组(分类变量1)在不同剂量下(分类变量2)的箱图(box plot)、均值计算并连接成线图(line plot)
  9. R语言dplyr包移除dataframe数据行实战(Remove Rows):按照条件移除数据行、按照索引移除数据行、删除包含NA值的所有数据行、删除具体列包含NA值的数据行
  10. R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance)