int与Integer的区别?==判断时的情况?

news/2024/7/24 2:35:01 标签: java
java">    public static void main(String[] args) {
        Integer i1 = 127;
        Integer i2 = 127;
        Integer i3 = 128;
        Integer i4 = 128;
        int i5 = 127;
        // Integer相同值的比较
        System.out.println(i1 == i2);// t
        System.out.println(i1 == i5);// t自动拆箱
        // Integer超出127的数,是否同一对象
        System.out.println(i1 == i2);// t
        System.out.println(i3 == i4);// f 否


        /**
         * 查看Integer.valueOf()
         *         public static Integer valueOf(int i) {
         *             if (i >= Integer.IntegerCache.low && i <= Integer.IntegerCache.high)
         *                 return Integer.IntegerCache.cache[i + (-Integer.IntegerCache.low)];
         *             return new Integer(i);
         *         }
         *
         *         Integer.IntegerCache.low
         *         static final int low = -128;
         *         assert IntegerCache.high >= 127;
         */

    }

总结:
int是基本数据类型,Integer是int的包装类。
二者在做==运算时,Integer会自动拆箱为int类型,然后再进行比较。届时,如果两个int值相等则返回true,否则就返回false

另外,查看Integer.valueOf()源码可以看到,当在[-128,127]时,Integer不会new一个对象出来,而是指向原有的地址


http://www.niftyadmin.cn/n/1329037.html

相关文章

webSocket搭建简易聊天室(后端实现)

准备材料 一个可以测试websocket的网站&#xff1a;http://coolaf.com/tool/chattestconsul&#xff08;服务注册中心&#xff09; 1. 搭建环境 新建spring项目的操作略过&#xff0c;引入依赖 pom.xml <dependency><groupId>org.springframework.boot</gro…

系统项目报表导出功能开发

与正常的导出功能不同&#xff0c;应局方要求需要导出一些截至当前的工程采集状态、提交审核状态等字段。该一类字段需要在导出时进行实时统计并且比较耗时。 1. 前期统计方式&#xff1a;单线程全量统计并返回前端 问题&#xff1a;根据当时统计&#xff0c;2000条数据就会超…

一条SQL语句的优化方式

1. 一条SQL语句的优化方式 限制在一条SQL语句中&#xff0c;那么数据库层面的&#xff1a; 优化数据库结构&#xff0c;多表联系时少用外键&#xff0c;建立关联表将字段很多的表拆分为多表 以上暂时不考虑 1、在表中建立索引&#xff0c;优先考虑where、group by使用到的字段。…

Spring中Bean的生命周期浅析

1、实例化bean对象 ​ 通过反射的方式进行对象的创建&#xff0c;此时的创建只是在堆空间中申请空间&#xff0c;属性都是默认值 2、设置对象属性 ​ 给对象中的属性进行值的设置工作 3、检查Aware相关接口并设置相关依赖 ​ 如果对象中需要引用容器内部的对象&#xff0c…

网络编程——分布式远程调用

远程调用方案 1. RMI 远程方法调用&#xff08;Remote Method Invocation&#xff09; 只适用于java语言 在本地调用&#xff0c;操作的是服务器端口在本地的副本&#xff0c;通过stub来重放服务器的端口&#xff1b;服务端也设置了一个扶助对象skeleton。实质上是stub和skel…

JVM核心概念

JVM核心概念 为什么java代码可以实现run everywhere&#xff1f; java代码编译成字节码文件(.class)&#xff0c;交给JVM&#xff0c;由JVM翻译成机器码从而在操作系统上实现。不同的操作系统对应不同的JVM&#xff0c;所以从宏观上看JVM屏蔽了各自操作系统的差异性 内存区域 与…

01.Redis的安装与启动

Redis的安装与启动 # bind 127.0.0.1 -::1 注释掉bind 127.0.0.1 -::1 bind 127.0.0.1 -::1 标识只能本机访问port 6379 Redis默认端口号timeout 0 永不过时启动方式&#xff1a; 前端启动 cd redis目录 redis-cli弊端&#xff1a;关闭当前窗口就会导致redis服务关闭 后端启…

02.发布与订阅

订阅者 127.0.0.1:6379> SUBSCRIBE cctv1 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "cctv1" 3) (integer) 1 1) "message" 2) "cctv1" 3) "hello"发布者 127.0.0.1:6379> PUBLISH cctv1 hell…