Java Long对象对比,用equals函数

news2025/1/10 23:00:43

文章目录

  • 一、前文
  • 二、调试
  • 三、后记

一、前文

同事问我一个问题,我咋一看也愣住了

代码:

 if(ObjectUtil.isNotNull(temp.getUserId()) && temp.getUserId()!=SecurityUtils.getUserId()) {
     logger.error(temp.toString());
     logger.error("SecurityUtils.getUserId() = "+SecurityUtils.getUserId());
     return AjaxResult.error("暂无权限");
 }

日志:

Group{id=119, userId=564, createTime=Mon Dec 26 16:54:02 CST 2022, updateTime=null}
SecurityUtils.getUserId() = 564

我看了半天,没错呀。
564==564呀。
哪错了呢?

二、调试

  • 认真一看UserId的类型Long,摸了摸脑袋
  • 写个单元测试,跑一跑吧

在这里插入图片描述

  • 顿时,心中一个卧槽。查了下资料才发现。
    • 当Long型的值超过了【-128,127】的时候,他会new一个新的对象,如果没有超过就会放到缓存中。
    • 所以当Long型的值超过了【-128,127】的时候,==判断就不会相等了,可以理解为此时==比较的是两个对象的地址而不是值。
  • 正规的比较应该是用equals函数。

在这里插入图片描述

三、后记

  • 我知道String类型的对象对比需要用到equals,不能直接==
  • 只是忘记了LongByteShortInteger·这些类型的对象,也是需要用equals,不能直接用==

觉得好,就一键三连呗(点赞+收藏+关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127627.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ICV:车规级激光雷达市场规模超7亿美元,补盲雷达有望2024年量产

全球前沿科技咨询机构ICV近期发布了车载激光雷达的市场分析报告,ICV在报告中表示激光雷达是自动驾驶传感器中增速最快的传感器,预计未来五年的复合年增长率达43.4%。此外,混合固态式激光雷达近五年内将仍以应用转镜技术为主。 本报告旨在评估…

【store商城项目05】新增收获地址的开发

新增收获地址的开发1.创建地址表2.创建实体类3.持久层的开发3.1规划需要执行的SQL语句3.2Mapper接口与抽象方法3.3配置SQL映射3.4测试4.业务层的开发4.1规划异常4.2接口和抽象方法4.3实现抽象方法4.4测试5.控制层的开发5.1规划异常5.2设计请求5.3处理请求5.4测试6前端页面1.创建…

【Linux】Linux权限(二)默认权限的来源

默认权限1.默认权限2.默认权限(最终权限)由谁决定2.1起始权限2.2umask(权限掩码)2.3 最终权限的计算3.总结1.默认权限 在Linux下,我们以普通用户创建一个普通文件, 这个普通文件(这里不包括可执行)的默认权…

萤石网络IPO首日破发:市值缩水20亿元,海康威视为控股股东

12月28日,杭州萤石网络股份有限公司(下称“萤石网络”,SH:688475)在上海证券交易所科创板上市。本次上市,萤石网络的发行价为28.77元/股,发行1.13亿股,募资总额为32.51亿元,总市值约…

【1.1】认识微服务--服务架构演变

认识微服务--服务架构演变单体架构分布式架构服务治理微服务微服务架构特征小结知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。 单体架构 单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包…

线性规划求解-MATLAB Lingo Python实现

线性规划求解-MATLAB Lingo Python实现 线性规划 线性规划是辅助人们进行科学管理的一种数学方法,是研究线性约束条件下线性目标函数的极值问题的数学理论和方法。其展开形式可以表示为如下形式: Max⁡(Min⁡)zc1x1c2x2…cnxns.t. {a11x1a12x2⋯a1nxn≥…

2022年度十大科学突破榜单出炉!

科学的进步在很大程度上推动着人类社会的发展。而了解最新年度科学突破,有助于引领我们知晓世界科学进展,看清楚未来方向。故此,知识人网小编本期介绍《科学》杂志最新公布的2022年科学突破榜单。 12月16日,美国《科学》杂志网站列…

一种时间复杂度为O(2ⁿ)、空间复杂度为O(n)的子集和问题的算法

子集和问题(Subset-Sum Problem, SSP)是说给定一个自然数集合S{a1,a2,⋯,an}S\{a_1,a_2,\cdots,a_n\}S{a1​,a2​,⋯,an​},它含有nnn个元素,现在又给定一个自然数sss,问是否存在SSS的一个子集TTT使得TTT的所有元素之和…

JavaScript 隐秘者 | Console.xxx竟然如此好用

JavaScript 隐秘者 | Console.xxx竟然如此好用 文章目录JavaScript 隐秘者 | Console.xxx竟然如此好用一、控制台调试二、对象方法 🍖1)、.assert() 条件断言2)、.clear() 清空控制台3)、.count() 计算调用数 ⭕4)、.countReset() 重置计数器5)、.debug() 调试消息6…

文献翻译 (3):非支配排序遗传算法 (Non-dominated Sorting Genetic Algorithm, NSGA-II)

文章目录1 引入2 多目标优化3 更多的定义3.1 支配3.2 非支配集3.3 全局Pareto最优集4 NSGA-II1 引入 本文主要介绍多目标优化的基本概念以及NSGA-II。 2 多目标优化 多目标优化的优化目标之间存在一定的冲突,例如一个目标增长,导致另一个减少。因此这…

Vue2 新手上路无处不在的特殊符号,让人傻傻分不清 “:”、“.”、“@”、“#” 、“{{}}“ 、“$“

刚刚学vue没多久,经常分不清情况什么时候用什么符号: “:” 是指令 “v-bind”的缩写 “.”是修饰符 “”是指令“v-on”的缩写 ,它用于监听 DOM 事件 “#”是v-slot的缩写; "{{}}" 插值语法 "$" &#…

智慧工厂在线云平台,助力企业降本增效!

随着传统制造企业规模的扩大,人工管理方法不可避免的产生延时、错误和矛盾,人工管理方法已经无法对生产管理实施有效的控制, 随着设备类型、数量不断增加,人工管理的方式已经无法满足生产过程中人、机、料、法、环、测的有效管理。如何将这些…

2022年——一个老老老程序员的杭州折腾之旅

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:无尽的折腾后,终于又回到…

[Android]视图的控触操作-MotionEvent

引入 对屏幕的任何操作,系统都会创建一个触摸事件的对象MotionEvent来应对这个操作。当点击手机屏幕的某一个视图时,最先感应到的是屏幕,因为Activity系统是分层的结构,底层是一些驱动,所以驱动就会得到信息并且把信息…

分布式共识算法——Paxos、ZAB、Raft

分布式算法 01 分布式基本理论 CAP理论 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值,即写操…

第008课 - linux安装docker

文章目录 linux安装docker安装docker启动docker检查dockerdocker设置开机自启动linux安装docker 每一种容器都是一个完整的运行环境,容器之间互相隔离的。 windows的ghost工具就是类似docker。 从网上获取镜像,基于镜像,docker可以启动一个容器。 所以,我们以后想要装某种…

elasticsearch在linux环境安装遇到问题

es在linux环境安装遇到问题 1、启动失败日志 ERROR: [1] bootstrap checks failed [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be con…

对某颜色站的一次渗透实战

1. 前提 1.1 某颜色cms弱口令原理 去年的时候,在网上看到有些师傅在打击颜色站,当时自己也摸索着试试,利用一个叫做jiuse cms的站来进行批量测试。 这个cms的特点是非常的小,前台除了xss之外,基本上漏洞都在后台&…

区块链+游戏:未来真的有未来吗?

今年以来,伴随着元宇宙与P2E的火热浪潮,区块链以其强大的叙事能力势如破竹的切入到传统游戏领域,顶级风投、知名巨企纷纷入局,迸发出极大的经济潜能,引发了社会的广泛关注。 一方面,区块链技术在游戏的运用…

【漏洞复现】多语言文件包含漏洞分析

漏洞描述&#xff1a; ThinkPHP在开启多语言功能的情况下存在文件包含漏洞&#xff0c;攻击者可以通过get、header、cookie等位置传入参数&#xff0c;实现目录穿越文件包含&#xff0c;通过pearcmd文件包含这个trick即可实现RCE。 影响版本&#xff1a; 6.0.1 < ThinkPH…