Integer超过-128-127比较问题

Integer超过-128-127比较问题

    @Testpublic void testEquals() {int int1 = 12;int int2 = 12;Integer integer1 = new Integer(12);Integer integer2 = new Integer(12);Integer integer3 = new Integer(127);Integer a1 = 127; //或者写成Integer a1 = Integer.valueOf(127);Integer a2 = 127;//或者写成Integer a2 = Integer.valueOf(127);Integer a = 128;Integer b = 128;System.out.println("int1 == int2 -> " + (int1 == int2));                    System.out.println("int1 == integer1 -> " + (int1 == integer1));            System.out.println("integer1 == integer2 -> " + (integer1 == integer2));    System.out.println("integer3 == a1 -> " + (integer3 == a1));                System.out.println("a1 == a2 -> " + (a1 == a2));                            System.out.println("a == b -> " + (a == b));                                                    
}   

答案是:

1、 int1 == int2 -> true
2、 int1 == integer1 -> true
3、 integer1 == integer2 -> false
4、 integer3 == a1 -> false
5、 a1 == a2 -> true
6、 a == b -> false

5、6 看起来是一模一样的为什么一个是true,一个是false

原因:
查看Integer源码发现,Integer内部有一个静态变量缓存池IntegerCache,里面声明了一个Integer[]数组,范围-128——127,Jvm在运行时创建了一 个缓存区域并创建了一个integer的数组。 这个数组存储了-128至127的值。因此如果integer的值在- 128至127之
间,则是去缓存里面获取。也就是说int a1 = 127时,在范围之内,这个时候就存放在缓存中,当再创建a2时,java发现缓存中存在127这个数了,就直接取出来赋值给a2,所以a1 == a2的。当超过范围就是new Integer()来new一个对象了,所以a、b都是new Integer(128)出来的变量,所以它们不等。

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

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

相关文章

CAEX 学习记录

CAEX(Computer Aided Engineering eXchange)是一种用于描述工程数据和信息的标准化格式。它旨在促进不同工程工具和系统之间的信息交换和互操作性。CAEX使用XML格式来描述工程对象、关系和属性,以便在整个工程生命周期中进行信息交换和集成。…

基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的考编论坛网站的设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

【华为云】云上两地三中心实践实操

写在前面 应用上云之后,如何进行数据可靠性以及业务连续性的保障是非常关键的,通过华为云云上两地三中心方案了解相关方案认证地址:https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为华…

vulnhub中Beelzebub靶机

渗透思路 一.信息收集1.网段探测2.端口探测3.常见漏洞扫描4.目录扫描5.web页面分析 二.渗透继续目录扫描ssh连接提权提权,flag 一.信息收集 1.网段探测 ┌──(root㉿kali)-[~] └─# nmap -Pn 192.168.0.0/24 --min-rate 10000 Starting …

awd总结

总结: 由于是第一次参加AWD比赛,各方面经验都不足,在参赛的前几天也是疯狂搜集各种脚本、框架、工具等,同时也参考b站的视频进行学习,我发现就是还是实操才能更快的学习 我觉得就是我前期的准备工作不足,…

【sentinel流量卫兵配置持久化到Nacos】

sentinel流量卫兵配置持久化到Nacos 概述: 一、添加配置二、配置说明限流规则配置:降级规则配置:热点规则配置:授权规则配置:系统规则配置: 三、服务整合 概述: 控制台配置的参数,默…

【TCP与UDP】day4

1.连接性 TCP是面向连接的,它在传输数据之前要先建立连接,传输完毕后再释放连接。 UDP是无连接的,发送数据之前不需要建立连接,也不会维护连接状态。 2.可靠性 TCP 提供可靠的数据传输,通过确认、重传、流量控制和拥塞…

Linux 文件连接:符号链接与硬链接

Linux 文件连接:符号链接与硬链接 介绍 在 Linux 系统中,文件连接是一个强大的概念,它允许我们在文件系统中创建引用,从而使得文件和目录之间产生联系。在本文中,我们将深入探讨两种主要类型的文件连接:符…

STM32WLE5JC

Sub-GHz 无线电介绍 sub-GHz无线电是一种超低功耗sub-GHz无线电,工作在150-960MHz ISM频段。 在发送和接收中采用LoRa和(G)FSK调制,仅在发送中采用BPSK/(G)MSK调制,可以在距离、数据速率和功耗之间实现最佳权衡。 这…

Maven的安装以及配置(超级详细版)

前言 至于什么是Maven,大家可以理解为之前的Vue一样,也是通过操控对象映射来使用的 他内部还有很多的插件用于实现对应的功能,例如打包插件,或是测试 maven下载 Maven – Download Apache Maven apache下的开源项目&#xff0c…

《Docker极简教程》--Docker基础--基础知识(一)

在这篇文章中我们先大致的了解以下Docker的基本概念,在后续的文章中我们会详细的讲解这些概念以及使用。 一、容器(Container) 1.1 容器的定义和特点 容器的定义 容器是一种轻量级、可移植的软件打包技术,用于打包应用及其依赖项和运行环境&#xff0c…

Python程序设计 深浅拷贝

对象引用、浅拷贝、深拷贝(拓展、难点、重点) Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果 其实这个是由于共享内存导致的结果 拷贝:原则…

2402d,d的real大小

原文 为什么在x86系统上,real.sizeof16! 它的IEEE754扩展格式:64位尾数15位指数符号. 它应该是10字节! 我意思是,可能对齐不同,但为什么即使在数组中,也浪费这么多内存? 根据语言规范,real是"可用的最大浮点大小".即在某些系统上,它是IEEE754的128位四精度浮点数…

Java Character源码剖析

Character类除了封装了一个char外,还封装了Unicode字符级别的各种操作,是Java文本处理的基础。下面结合源码分析Character的贡献。 Unicode 也许你没听过Unicode,但应该见过UTF-8。UTF-8(8-bit Unicode Transformation Format&a…

Linux的进程信号

注意:首先需要提醒一个事情,本节提及的进程信号和下节的信号量没有任何关系,请您区分对待。 1.信号概念 1.1.生活中的信号 我们在生活中通过体验现实,记忆了一些信号和对应的处理动作,这意味着信号有以下相关的特点&…

Linux定时监测数据库服务若掉了则启动数据库服务

Linux定时监测数据库服务若掉了则启动数据库服务 环境介绍环境介绍 在某些生产环境,业务系统抛异常报错,排查发现数据库连接异常,查看数据库服务已经关闭;人工定位问题解决问题需要较长时间;到人工启动数据库期间,业务系统一直处于故障状态,无法访问;配置Linux定时任务,判断数据…

ROS笔记二:launch

目录 launch node标签 参数 参数服务器 节点分组 launch launch文件是一种可以可实现多节点启动和参数配置的xml文件,launch文件用于启动和配置ROS节点、参数和其他相关组件。launch文件通常使用XML格式编写,其主要目的是方便地启动ROS节点和设置节点之间的连…

寒假刷题第21天

PTA甲级 1174 Left-View of Binary Tree #include<iostream> #include<vector> #include<algorithm> #include<unordered_map>using namespace std;const int N 1e5 10; int pre[N] , in[N] , idx[N] , l[N] , r[N]; int n , max_dep 0; unordere…

72.是否可以把所有Bean都通过Spring容器来管理?(Spring的applicationContext.xml中配置全局扫 描)

一、是否可以把所有Bean都通过Spring容器来管理&#xff1f;&#xff08;Spring的applicationContext.xml中配置全局扫描) 不可以&#xff0c;这样会导致我们请求接口的时候产生404。 如果所有的Bean都交给父容器&#xff0c;SpringMVC在初始化HandlerMethods的时 候&#xff…

Vue3 中的各种ref

年前搞了一个V3的需求&#xff0c;里面涉及了一些各种ref的使用&#xff0c;今天顺便总结下V3中ref家族。 ref家族 ref()toReftoRefsisRef()unref()shallowReftriggerRefcustomRef总结 ref() 大家对于 ref 这个 API 肯定都不陌生。在 Vue3 中经常会用到它。它的作用是接收一个…