Integer的比较和注意点

简介: Integer的比较和注意点

先看代码:

    public static void main(String[] args) {
        Integer a = new Integer(175);
        Integer b = new Integer(175);
        Integer c = new Integer(120);
        Integer d = new Integer(120);
 
        Integer z = 175;
        Integer x = 175;
        Integer n = 75;
        Integer v = 75;
        System.out.println("a.equals(b) : "+ a.equals(b));
        System.out.println("a==b: " +(a==b));
        System.out.println("c.equals(d) : "+ c.equals(d));
        System.out.println("c==d: " +(c==d));
        System.out.println("z==x: "+ (z==x));
        System.out.println("n==v: "+(n==v));
        System.out.println("z.equals(x): "+ z.equals(x));
        System.out.println("n.equals(v): "+ n.equals(v));
    }

结果:

a.equals(b) : true
a==b: false
c.equals(d) : true
c==d: false
z==x: false
x==v: true
z.equals(x): true
n.equals(v): true

什么原因呢:

Integer有个缓存机制 : -128~127

也就是说,当你声明两个Integer 对象(不使用new)时,如果值是在此范围之内, 使用"==" 结果是true ,但是一旦超过了此范围,则会在堆中重新声明一块地址,此时再用"==" 结果就会返回false

并且 使用"==" 比较两个值相等的使用 new Integer() 生命的对象时,即使值相等,结果也依然是false。因为这两个Integer对象其实是指向两块不同的内存地址的。 有点像String类型。

推荐 : 使用 equalse 比较两个 Integer的值

因为 使用equals 比较不管使用哪种声明方式,结果都可以理解为是比较声明的对象的值。

来看《阿里巴巴Java开发手册》的建议:

image.png

目录
相关文章
|
JSON 数据可视化 BI
我常用的5个Python可视化库
我常用的5个Python可视化库
257 2
|
JavaScript 前端开发 安全
Burpsuite系列 -- proxy模块介绍
Burpsuite系列 -- proxy模块介绍
315 0
Burpsuite系列 -- proxy模块介绍
|
数据安全/隐私保护
|
网络协议 前端开发 Java
《Netty 实战》Netty In Action中文版 第2章——你的第一款Netty应用程序(二)
2.3.2 引导服务器 在讨论过由EchoServerHandler实现的核心业务逻辑之后,我们现在可以探讨引导服务器本身的过程了,具体涉及以下内容: 绑定到服务器将在其上监听并接受传入连接请求的端口; 配置Channel,以将有关的入站消息通知给EchoServerHandler实例。
1870 0
|
11天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1230 5
|
10天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1214 87
|
10天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1796 13