Java中的Integer、Long等实例的比较

Long类型数值比较及反汇编分析源码 一、问题描述 开发过程中遇到如下问题 Long a = 100L; Long b = 100L; System.out.println(a == b); System.out.println(a.equals(b)); System.out.println(a == 100); System.out.println(a.equals(100)); 输出结果: true true true fal... 阅读详情

1.描述:

说明:ReportRepairService rrService是保修服务方法类,rrService.getReceivedUserId() != userDetail.getId()判断的是接单人员的id是否和订单中的接单人员id是否相同,

如果不相同,则打印指定的报修订单已派给他人,您无法接单。

------------------------------------------------------------------------------------------------------------------------------

ReportRepairService rrService = this.rrOrderService .findReportRepairServiceById(orderId);
                if (rrService.getReceivedUserId() != userDetail.getId()) {
                    ErrorCodeHelper
                            .Code400(dataMap, "指定的报修订单已派给他人,您无法接单。");
                }else{

                     System.out.println("接单成功");

                 }

-----------------------------------------------------------------------------------------------------------------------------------

2.问题:

这是运行在windows tomcat8.0的一段springmvc的服务器程序,在windows下本地运行是正常的打印接单成功。但是迁移到阿里云的tomcat8.0确实rrService.getReceivedUserId() != userDetail.getId()输出的永远是“指定的报修订单已派给他人,您无法接单”。也就是说rrService.getReceivedUserId() != userDetail.getId()的真值在windows和lunix系统中执行的结果是不同的。


3.问题解决:

根本原因还是不得而知。但是Java中的Integer、Long等实例的比较,需要使用equal()方法,不能使用==、!=运算符,因为Integer、Long为引用类型。
与其类似的,类比的有.NET中的Int32、Int64等变量的比较,可以使用equal()方法,也可以使用==、!=运算符,因为Int32、Int64不是引用类型,而是值类型。
所以采用.equal()方法去判断,则是会保持一样的结果,windows和lunix是一致的结果。

java中Long和Integer缓存-128~127的简介说明 Long和Integer缓存-128~127的简介说明 阅读详情

相关推荐

关于-128到127之间Integer与Long两种类型的比较

public class Test { public static void main(String[] args) { Long a1 = 128L; Long a2 = 128L; System.out.print("a1==a2:"); System.out.println(a1==a2); System.out.print("a1==128L:"); Sy...

lierjun 的专栏 1251

java 常见的数据值比较 Intrger;Long

java 常见的数据值比较 Intrger;Long 最近复习了一下基础,记录一下 public static void main(String[] args) { Integer i = 200; Long l = 200L; // System.out.println(i==l);//类型不一样,不能用==比较,直接编译报错 System.out.println(i == l.longValue()); //true 拆箱然后比较两个基本类

qq_43916164的博客 837

细数java中Long与Integer比较容易犯的错误总结

下面小编就为大家带来一篇细数java中Long与Integer比较容易犯的错误总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

关于Java Integer和Long使用equals直接比较

Integer和Long不能直接equals比较会返回False。

此人很懒,什么都没有写 947

ai数字人系统部署

这段代码实现了基本的语音交互闭环,用户通过语音输入问题,数字人识别语音后进行自然语言理解并生成回复,再将回复转换为语音输出。但实际应用中的 AI 数字人系统更为复杂,如形象渲染需专业图形引擎(如 Unity、Unreal Engine),自然语言处理也会涉及更复杂的模型微调及多轮对话管理等。一个完整的 AI 数字人系统涵盖形象生成、自然语言处理、动作控制等多个复杂功能,下面为你提供一个 Python 示例,整合多个库来实现数字人基础功能,包括语音交互、简单的自然语言理解以及通过虚拟形象展示对话。

weixin_ggwwsscc的博客 369

Nginx的启动、停止与重启命令(非yum方式安装)图解版

目录一、Nginx启动二、Nginx停止的三种方式2.1、第一种方式(从容停止)2.2、第二种方式(快速停止)2.3、第三种方式(强制停止)三、Nginx重启3.1、首先,验证nginx配置文件是否正确3.1.1、验证nginx配置文件(方法一)3.1.1、验证nginx配置文件(方法二)3.2、最后,重启Nginx服务3.2.1、重启Nginx服务(方法一)3.2.2、重启Nginx服务(方法二) 一、Nginx启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 /usr/loc

小志的博客 6851

在Java中Integer 和 Long 进行比较 ==问题

Integer和Long == 注意点解析源码测试案例如何比较 解析源码 在Java中基础类型包装类中的Integer和 Long有一个特殊的地方需要注意 在比较值的时候不要用 == 进行比较。 在这里以 Long 类型为例 查看源码: Long.class public static Long valueOf(long l) { final int offset = 128; // -128 到 127 之间的数值会被缓存起来 if (l >= -

weixin_43863895的博客 7688

ST7789驱动实战:从SPI时序到RGB565显示的完整配置解析

本文详细解析了ST7789液晶驱动芯片的SPI时序配置与RGB565显示实现,从数据手册解读到代码实战,涵盖SPI接口配置、关键寄存器设置及完整初始化流程。通过优化DMA传输和常见问题排查,帮助开发者高效驱动ST7789显示屏,适用于嵌入式显示项目开发。

weixin_29162439的博客 184

javaLong和Integer比较

Java中Long和Integer的比较 作为一名刚入行的开发者,你可能会遇到需要比较Java中的Long和Integer类型的情况。这篇文章将指导你如何实现这一功能。 比较流程 首先,让我们通过一个表格来了解整个比较流程: 步骤 描述 代码示例 1 准备数据 Long longValue = 123L; ...

weixin_29641609的博客 442

Android蓝牙Mesh组网实战:从零搭建智能灯光控制系统(附完整代码)

本文详细介绍了基于Android平台开发蓝牙Mesh智能灯光控制系统的完整实战流程。从环境搭建、核心概念解析,到设备扫描配网、网络初始化、模型配置与消息通信,提供了完整的代码实现和调试技巧。重点讲解了如何使用开源Mesh库实现设备发现、分组控制、场景管理等核心功能,并分享了实际项目中遇到的典型问题与解决方案。

weixin_29174013的博客 654

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题

ou_no的博客 3537

java long转integer_java中long(Long)与int(Integer)之间的转换方式

我就废话不多说了,大家还是直接看代码吧~public static void main(String[] args) {// 1、将long型转化为int型,其中int、long是基础类型long a = 10;int b = (int) a;System.out.println("1、将long型转化为int型:" + b);// 2、将int型转化为long型,其中int、long都是基础类型...

weixin_36371924的博客 2883

从泛光成像到可寻址扫描:Flash激光雷达的车规级优势与技术演进

Flash激光雷达凭借固态架构优势成为自动驾驶感知技术的重要发展方向。该方案无机械部件,具备抗振动、长寿命等特点,同时CMOS工艺带来显著成本优势。但传统泛光式存在能量弥散问题,难以兼顾大视场和远距离探测。可寻址扫描技术通过分区点亮VCSEL阵列,有效提升局部能量密度,在保持固态可靠性的同时突破性能瓶颈。这种"电子扫描+分区点亮"的混合架构,使Flash激光雷达有望实现大视场、远距离、高可靠和低成本的多重突破,推动自动驾驶技术发展。

致力于lidar应用开发 233

JAVA中Long与Integer比较容易犯的错误

今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较。 其实这样是错误的。 因为Long与Ineger都是包装类型,是对象。  而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的。

菜鸟的天空 907

10分钟极速SpringBoot项目搭建:OpenClaw AI实战攻略

OpenClaw,作为一款革命性的 AI 工具,凭借其强大的智能体能力,能够在短短 10 分钟内,帮助开发者从零构建一个完整的 SpringBoot 项目,实现真正的极速开发。它不仅极大地提高了开发效率,还降低了开发门槛,让更多的开发者能够专注于业务逻辑的实现,而无需被繁琐的配置工作所困扰

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 298

YOLOv8改进策略【损失函数篇】| 替换Powerful-IoU(PIoU),增强对中等质量锚框的关注力,引导锚框更直接、高效地回归

现有基于IoU的损失函数存在不合理的惩罚因子,导致锚框在回归过程中出现面积扩大的问题,使得回归效率降低、收敛速度变慢。同时,这些损失函数在反映锚框与目标框之间的差异、考虑目标框大小以及某些情况下的性能表现等方面存在局限性。在目标检测任务中,边界框回归的损失函数对检测性能至关重要。Powerful-IoU(PIoU)及其升级版PIoU v2正是为解决现有损失函数存在的问题而设计的。本文利用PIoU改进YOLOv8的损失函数,提高模型精度。

Limiiiing的博客 672

java中int和long的考题_java中long(Long)与int(Integer)之间的转换方式

我就废话不多说了,大家还是直接看代码吧~public static void main(String[] args) {// 1、将long型转化为int型,其中int、long是基础类型long a = 10;int b = (int) a;System.out.println("1、将long型转化为int型:" + b);// 2、将int型转化为long型,其中int、long都是基础类型...

weixin_35021193的博客 350

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Map里的Integer与Long做比较

Map<String,Integer> map=new HashMap<>(); Map<String,Long> map1=new HashMap<>(); map.put("id",1); map1.put("id", Long.valueOf(1)); System.out.println(map.get("id").equals(

fuancui的博客 1118

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

原始类型封装后的比较 Integer Short Long

Integer是对原始类型int的封装。Short是对short的封装。Long是对long的封装.public class IntegerTest {    public static void main(String[] args) {                short s = 42;                Long x = new Long("42");           

小兴的专栏 2021

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【2】Java中Integer直接比较大小

Integer a = -1250; Integer b = -1250; System.out.println(a == b); Integer c = -125; Integer d = -125; System.out.println(c == d); 上面两段代码输出结果为:false  true 原因:Integer在比较value大小时,Integer对象有个缓存,如果v...

azhegps的博客 7314

Java中Long类型的使用问题

在开发的到一个很基础的问题 在代码中,两个Long类型数据比较用“==”,结果有时候true有时候false,原本以为Long会自动转long然后再比较,不会是这里的错,找来找去实在找不到其他原因了,我就打印这两个Long类型出来看,果然是不相等,于是脸黑了一阵… 去查了一下资料,原来是这样: Java 基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long,...

Pitt_96的博客 1632

Int,Long比较重使用equal替换==

首先,==有很多限制,如Integer 类型的值在[-128,127] 期间,Integer 用 “==”是可以的(参考),超过范围则不行,那么使用equal则代替则完全ok public static void main(String[] args) { Long prop=4004L; Long prop1=4004l; ...

229

Java Integer, Long等原始类型包装类的比较

在开发中,不小心将一些Bean的时Integer,Long类型的字段用==号来比较,导致错误。正确的比较方法是用equals()和compareTo()方法,或获取原始类型值再比较。 package primitivewrapper; import org.junit.Test; /** * @Author: Tom * @Date: 2021年1月2日 下午2:07:27 * @Version: 1.0 * @Description: */ public class Integer

Tom098的博客 403

java 拆箱 类型不对_类型比较、装拆箱问题

早上,在牛客看到这么一道关于类型比较与自动装拆箱的笔试题,于是做总结如下:@Testpublic void test6(){Integer i = 42;Long l = 42L;Double d = 42.0;// System.out.println(i==l);//报错Incompatible operand types Integer and Long// Sy...

weixin_29358053的博客 299

java中的封装类

原始数据类型 包  装  类 boolean(布尔型) Boolean byte(字节型) Byte char(字符型) Character short(短整型) Short int(整型) Integer long(长整型)

孤竹的博客 1796

java 整数相等_java中整数的相等比较

如果比较两个数值相等的Integer类型的整数,你可能会发现,用“==”比较(首先你必须明确“==”比较的是地址),有的时候返回true,而有的时候,返回false。比如:Integer i = 128;Integer j = 128;System.out.println(i == j);//返回false而Integer m = 127;Integer n = 127;System.out.pr...

weixin_31597881的博客 1502
上一篇: java反射机制理解-上
下一篇: mujava的配置和运行Demo
四蛋0000
博客等级 码龄15年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值