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值比较 的相关文章

随机推荐

  • 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 装箱 拆箱 将包装类转换成基