Integer值比较

2023-10-26

包装类与基本数据类型
包装类是将基本数据类型封装成一个类,包含属性和名称

使用
在使用过程中,会涉及到自动装箱和自动拆箱

装箱
将基本数据类型转换成包装类

Integer i = Integer.valueOf(a);//装箱

拆箱
将包装类转换成基本数据类型

int i2 = b.intValue();//拆箱

普通类型比较

int1 == integer1,Integer是int的封装类,当Integer与int进行==比较时,Integer就会拆箱成一个int类型,所以还是相当于两个int类型进行比较,这里的Integer,不管是直接赋值,还是new创建的对象,只要跟int比较就会拆箱为int类型,所以就是相等的。

private static void intCompare(){
        int int1 = 128;
        Integer integer1 = 128;
        Integer integer2 = Integer.valueOf(128);
        Integer integer3 = new Integer(128);
        System.out.println(int1==integer1); //true 拆箱后值比较
        System.out.println(int1 == integer2); //true
        System.out.println(int1 == integer3); //true
    }

包装类型比较

Integer比较的是内存地址,不会经历拆箱过程。
当时在-128到127范围内,有IntegerCache缓存,所以对象是一样的

   public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

在-128-127范围内,不重复创建对象

 private static void integerCompare(){
        Integer integer1 = 127; // 等价于Integer.valueOf(127);
        Integer integer2 = Integer.valueOf(127); //从缓存中读取
        Integer integer3 = new Integer(127);
        System.out.println(integer1==integer1); //true 
        System.out.println(integer1 == integer3); //false
        System.out.println(integer2 == integer3); //false
    }

超过127,每次都创建新的Integer对象

    private static void integerCompare2(){
        Integer integer1 = 128 ;// 等价于Integer.valueOf(128);
        Integer integer2 = Integer.valueOf(128);
        Integer integer3 = new Integer(128);
        System.out.println(integer1==integer2); //false
        System.out.println(integer1 == integer3); //false
        System.out.println(integer2 == integer3); //false
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Integer值比较 的相关文章

  • 检查从 arrayadapter 获取的复选框

    我有标题清单 CheckBox 我想控制默认检查哪一个 所以我试图获得正确的视图并检查它 但由于某种原因它不起作用 知道为什么吗 form checkbox item xml
  • 仅使用公钥在 HD 钱包中生成以太坊地址 (bitcoinj/web3j)

    我尝试为使用 bitcoinj 库实现的 HD 钱包密钥生成以太坊地址 但我感到困惑 DeterministicSeed seed new DeterministicSeed some seed code here null 1409478
  • 从另一个进程捕获 system.out 消息

    我有一个 JVM 1 它启动 JVM 2 我希望能够在 JVM 1 中监视来自 JVM 2 的 System out println 调用 直接的方法是 JVM A 执行系统命令来启动 JVM B 然后 JVM A 读取 B 的所有输出 S
  • 模式更新后 jOOQ 生成的类的运行时验证?

    我用org jooq util DefaultGenerator在构建过程中生成 jOOQ 类来表示我的数据库模式 当应用程序运行时 架构预计会在应用程序不知情的情况下发生更改 此类更改可能与已生成的代码兼容 也可能不兼容 如何在运行时检测
  • AMQP Spring 集成错误处理

    我的集成流程如下所示 Bean public IntegrationFlow auditFlow Qualifier eventLoggingConnectionFactory ConnectionFactory connectionFac
  • 始终等待页面加载到 PageObjects 上

    因此 当出现问题时 我只是创建了一个简单的 selenium JBehave 代码 我将首先发布简化的代码 然后稍后解释我的问题是什么 所以这里我们有一个简单的 AbstractClass 它将在我的 PageObjects 上继承 此类仅
  • 有没有办法让Maven自动下载快照版本?

    所以我有一个项目依赖于另一个项目的快照版本 依赖关系是
  • NIO 直接缓冲区何时以及如何被释放?

    我有一个 C 库 需要一个临时缓冲区作为暂存空间 我正在考虑将直接字节缓冲区的地址传递给它 在最终释放缓冲区之前 是否允许虚拟机重新定位缓冲区 JNI 框架消失后 本机库将保留该指针 我的理解是 JNI 本地对象引用无法缓存 因为 VM 可
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 如何在 QueryDSL 中选择文字

    我目前正在开发一个使用 queryDSL 和 hibernate 的项目 其中它需要一个选择文字 按照发布的示例here https stackoverflow com questions 18691317 querydsl how to
  • Java 声音可视化器

    我正在尝试制作一个java声音可视化工具 但我完全不知道如何在实时处理音频后立即从提取的音频中获取字节 我可以将程序与 wav 文件同步 但这不是我想要做的 我想用程序生成声音 然后播放它 而不将其保存在任何地方 谢谢您的帮助 本文可以帮助
  • java中永远不会出现的异常

    我为点和向量编写一个类 我想用它们来计算向量的点和范数 这些是点类和向量类 public class Point public float x y public class MyVector public Point start end 我
  • 用于 Eclipse 的 Resharper [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 Maven 控制台与 m2eclipse 一起使用

    Maven 新手在这里 有没有办法在 Eclipse 中打开控制台并在 M2Eclipse 插件上执行 Maven 命令 这是一个非常好的插件 但我环顾四周 没有找到我想要的一些功能 谢谢 如果你想运行特定的maven插件 你可以这样做 g
  • 为什么replaceAll在这行代码中不起作用? [复制]

    这个问题在这里已经有答案了 String weatherLocation weatherLoc 1 toString weatherLocation replaceAll how weatherLocation replaceAll wea
  • “强制更新快照/版本” - 这是什么意思

    在 Maven 项目中 选择 更新项目 时 有一个名为 强制更新快照 版本 的选项 它有什么作用 强制更新快照 版本 就像运行以下命令 mvn U install U 也可以用作 update snapshot 看here http boo
  • 对于双核手机,availableProcessors() 返回 1

    我最近购买了一部 Moto Atrix 2 手机 当我尝试查看手机中的处理器规格时 Runtime getRuntime availableProcessors 返回 1 proc cpuinfo 也仅包含有关处理器 0 的信息 出于好奇
  • Eclipse 如何创建一个未解决编译问题的类?

    当我尝试使用 javac 编译此类时 出现编译错误并且未创建 Test class public class Test public static void main String args int x 1L lt this cannot
  • 如何在 Hibernate 中自动递增复合主键中的 Id?

    我有一个带有复合主键的表 groupId and batchId 实体类看起来像 Entity name EMPLOYEE public class Employee EmbeddedId private EmployeePK employ
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str

随机推荐

  • Ubuntu重现IBM-Blockchain/marbles的Demo

    IBM Blockchain marbles Github网址 之前看书marbles是被翻译成大理石 不过也有翻译成弹珠的 自己理解就可以了 都是资产 现在我们开始重现这个官方的Demo 搭建Fabric的开发环境 搭建的环境至少是1 0
  • msfconsole常用搜索命令search

    msfconsole启动msf控制台后 msfconsole 2 dBBBBBBb dBBBP dBBBBBBP dBBBBBb o dB BBP dB dB dB dBBP dBP dBP BB dB dB dB dBP dBP dBP
  • opencvsharp 为什么降低图像的分辨率_【干货】图像质量与图像分辨率的关系

    在谈论图像质量时 我们都会提到分辨率 分辨率当然是指以像素 图像元素 为单位测量的图像的大小 当您将图像分辨率的宽度和高度相乘时 它将给出图像的总像素数 而质量是指图像中存储在像素中的细节内容 如颜色 阴影 对比度等 有些说法是 更高的分辨
  • Ubuntu 16.04纯文本界面、图形化界面切换方法

    一 图形化界面与纯文本界面的动态切换方法 Ubuntu 16 04系统默认以图形化界面方式启动 进入图形化界面后 若要切换到纯文本界面 一般可以按 Ctrl Alt F1 或F2 F6 快捷键 在文本终端中输入用户名 密码后登录即可 如下图
  • Python报“TypeError: a bytes-like object is required, not ‘str’ ”解决办法

    import os sys 打开文件 fd os open foo txt os O RDWR os O CREAT str this is fujieace com test str str encode 添加转换方法 encode 即可
  • 【技巧】pycharm中Debug过程中跳过for/while循环

    先在for while循环结束后的一句打上断点即可 再找到左侧绿色按钮
  • kali之MS08-067漏洞复现

    MS08 067漏洞复现 漏洞简介 MicrosoftWindows是美国微软 Microsoft 公司发布的一系列操作系统 Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞 远程攻击者可以通过发送恶意的RPC请求触
  • java中设计模式之装饰模式(结构型模式)

    什么是装饰模式 装饰模式 Decorator Pattern 是一种结构型设计模式 它允许你在不改变已有对象结构的情况下 动态地向对象添加新的功能 装饰模式利用组合和继承的方式 通过创建包装对象来包裹原始对象 以增强其功能 这样可以在不修改
  • - 模块“VPMC“启动失败,未能启动虚拟机?

    模块 VPMC 启动失败 未能启动虚拟机 原因 该主机的CPU类型问题 它不支持虚拟化性能计数器 可通过右击虚拟机 打开设置进行处理 解决方法 右击虚拟机 设置 选择处理器 虚拟化引擎中的三个框全部去 重启虚拟机 也有可能是没有开启主机虚拟
  • linux centos7清除系统日志、历史记录、登录信息

    平时不管是web还是系统产生的日志都可能导致洗盘爆满 所以我在这里分享一些基本常用清理linux日志的方法 echo gt var log wtmp 清除用户登录记录 echo gt var log btmp 清除尝试登录记录 echo g
  • scrapy-splash java,scrapy-splash简单使用详解

    1 scrapy splash是scrapy的一个组件 scrapy splash加载js数据基于Splash来实现的 Splash是一个Javascrapy渲染服务 它是一个实现HTTP API的轻量级浏览器 Splash是用Python
  • 【node】- npm install时报错:npm WARN enoent ENOENT: no such file or directory

    npm install g koa 时报错如下所示 npm WARN enoent ENOENT no such file or directory 项目目录中没有package json 解决方法 在cmd命令行中输入 npm confi
  • 基于STM32单片机的停车场系统

    一 系统设计 本次停车场系统的设计使用STM32单片机为主控 通过光电检测模块检测车位 检测到数据后通过ESP8266通信模块上传到上位机 检测到车辆时则判断车位被占用并自动计算停车费和空余车位 二 硬件设计 本设计所采用的STM32F10
  • sqli-labs——保姆级1~22闯关详解

    目录 Less 1 GET Error based Single quotes String 错误的GET单引号字符串型注入 Less 2 GET Error based intiger based 错误的GET数值型注入 Less 3 G
  • Windows如何安装linux子系统

    很多用windows的开发人员其实非常羡慕Mac用户可以在Mac上直接使用linux命令安装软件和操作计算机的 现在windows 10以上的系统也支持安装一个linux子系统 方便个人测试使用 让你不再需要安装虚拟机也能做linux的测试
  • Github上优秀的开源小程序汇总

    Github上优秀的开源小程序汇总 有什么小程序适合个人开发 工具类的小程序非常适合个人开发 用云开发模式开发成本很低 能够快速上线 唯一的缺点是个人无法接入支付 变现渠道受限 目前只能通过流量主变现 见过一个在职的朋友利用业余时间实现小程
  • 苹果手机显示没有连接服务器怎么办啊,苹果手机更新连接到服务器出现问题怎么办...

    1 我的苹果手机验证失败 下面显示连接到服务器出现问题 怎么办 验证失败 连接到服务器时出现问题 一般是由于网络连接出现异常或者手机系统出错导致的 更换手机当前连接网络信号 比如 将无线网络切换至手机数据 或者是断开网络输入密码进行重新连接
  • XSS-labs 1-13关通关攻略

    目录 通杀 认真 第一关 无过滤 第二关 尖号内xss 第三关 过滤 lt gt 第四关 与第三关一致 只是单引号变成双引号 第五关 a标签 第六关 大小写绕过 第七关 双写绕过 第八关 unicode编码绕过 第九关 白名单绕过 第十关
  • python接口自动化之自动发送测试报告邮件

    目录 目录 前言 smtp授权 发送邮件 封装及应用 总结 前言 SMTP Simple Mail Transfer Protocol 也就是简单邮件传输协议 是一种提供可靠且有效电子邮件传输的协议 python的smtplib模块就提供了
  • Integer值比较

    包装类与基本数据类型 包装类是将基本数据类型封装成一个类 包含属性和名称 使用 在使用过程中 会涉及到自动装箱和自动拆箱 装箱 将基本数据类型转换成包装类 Integer i Integer valueOf a 装箱 拆箱 将包装类转换成基