Integer ==与Equals【原创】

简介: package Equals; public class IntegerEquals { public static void main(String[] args) { printLine(128); Integer a=128; Integer b=128; System.

 

package Equals;

public class IntegerEquals {

    public static void main(String[] args) {
        printLine(128);
        Integer a=128;
        Integer b=128;
        System.out.println(a==b);
        System.out.println(a.equals(b));
        
        printLine(127);
        a=127;
        b=127;
        System.out.println(a==b);
        System.out.println(a.equals(b));
        
        printLine(-128);
        a=-128;
        b=-128;
        System.out.println(a==b);
        System.out.println(a.equals(b));
        
        printLine(-129);
        a=-129;
        b=-129;
        System.out.println(a==b);
        System.out.println(a.equals(b));
    }

    private static void printLine(int flag) {
        System.out.println("========"+flag+"========");
    }

}

Output:

========128========
false
true
========127========
true
true
========-128========
true
true
========-129========
false
true

 

原因:
基于减少对象创建次数和节省内存的考虑,[-128,127]之间的数字会被缓存。

[-128,127]这个范围取决于java.lang.Integer.IntegerCache.high参数的设置。

    private static class IntegerCache {
    private IntegerCache(){}

    static final Integer cache[] = new Integer[-(-128) + 127 + 1];

    static {
        for(int i = 0; i < cache.length; i++)
        cache[i] = new Integer(i - 128);
    }
    }

 

相关文章
|
C语言 Windows
使用CMake调用Makefile 项目
使用CMake调用Makefile 项目
318 0
|
运维 Cloud Native 关系型数据库
“瑶池”正式发布,一站式数据管理与服务
11月3日,在2022云栖大会上,阿里巴巴集团副总裁、阿里云数据库产品事业部负责人李飞飞发表《一站式、全场景数据管理与服务》主题演讲,分享了数据库发展的四个核心趋势,并发布数据库独立品牌“瑶池”,将云原生关系型数据库PolarDB、云原生数据仓库AnalyticDB (简称ADB)、云原生多模数据库Lindorm等产品统一归属到全新品牌“瑶池”。
2677 0
 “瑶池”正式发布,一站式数据管理与服务
|
11月前
|
Dart 索引
鸿蒙应用开发从入门到入行 - 篇8:Tabs选项卡页签视图切换
在本篇文章里,您将掌握使用Tabs选项卡做栏目分类,这是未来应用开发中极为常用的组件
461 7
鸿蒙应用开发从入门到入行 - 篇8:Tabs选项卡页签视图切换
|
11月前
|
存储 API
鸿蒙元服务项目实战:终结篇之备忘录搜索功能实现
开发元服务,有很多的限制性因素,比如包的大小限制,相关API限制,所以,我们在实际开发的时候,具体Api能否使用,还需要去官网查看一下,目前,针对当前这个小项目,总结了几个小问题,大家在开发的过程中可以作为参考。
225 2
鸿蒙元服务项目实战:终结篇之备忘录搜索功能实现
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
598 0
|
前端开发 JavaScript 开发者
Angular与Webpack协同优化:打造生产级别的打包配置——详解从基础设置到高级代码拆分和插件使用
【8月更文挑战第31天】在现代前端开发中,优化应用性能和加载时间至关重要,尤其是对于使用Angular框架的项目。本文通过代码示例详细展示了如何配置Webpack,以实现生产级别的打包优化。从基础配置到生产环境设置、代码拆分,再到使用加载器与插件,每个步骤都旨在提升应用效率,确保快速加载和稳定运行。通过这些配置,开发者能更好地控制资源打包,充分发挥Webpack的强大功能。
554 0
|
网络架构
小区搜索过程
小区搜索是终端通过同步信号块SSB与小区建立联系的过程,包括取得小区下行频率、时间同步、检测小区识别号CellID、通过解码广播信道BCH上的系统信息。下行同步包括频率、符号和帧同步。
452 0
小区搜索过程
|
消息中间件 Java 关系型数据库
线上远程京东技术三面+HR面,五月中旬成功就职京东,月薪30K
由于今年的疫情影响,很多互联网大厂公司都采用线上远程面试的方法来挑选人才,很多幸运的小伙伴也是已经拿到大厂的offer了,今天给大家分享的是我之前公司同事拿到京东offer的朋友的面试经历,疫情虽然已经好转,但是还有很多朋友是在线上办公的,然后我去问到了我这个朋友京东面试的一些真题,以及我整理的一些真题分享给大家,希望可以还在找工作的伙伴提供到帮助,同时也祝大家都能收获自己的心仪 “offer” 吧!
|
算法 Java UED
深入解析CMS垃圾回收器
在CMS之前的垃圾回收器,要么就是串行垃圾回收方式,要么就是关注系统吞吐量,而 CMS 垃圾回收器的出现,则打破了这个尴尬的局面。
516 0
深入解析CMS垃圾回收器