首页 > 编程语言 >[Java基础]Integer

[Java基础]Integer

时间:2024-08-01 23:39:55浏览次数:22  
标签:Java 对象 valueOf 基础 127 128 Integer

在Java中,Integer 类会对一些数值进行缓存,这样可以节省内存并提高性能。当你使用 Integer.valueOf(int) 方法来创建 Integer 对象时,对于数值在 -128 到 127 之间的整数,Java 会返回缓存中的对象实例。因此,对于这些范围内的整数,用 Integer.valueOf 创建的 Integer 对象实际上会引用同一个实例。

在你的示例代码中:

Integer i = Integer.valueOf(100);
Integer j = Integer.valueOf(100);

System.out.println(i == j);

由于100在 -128 到 127 的范围内,ij 都会引用同一个 Integer 对象。因此,i == j 会返回 true

但是,如果你使用超过这个范围的整数,Integer.valueOf 会创建新的对象,因此它们的引用会不同。例如:

Integer i = Integer.valueOf(200);
Integer j = Integer.valueOf(200);

System.out.println(i == j); // 这将打印false

这是因为200超出了 -128 到 127 的缓存范围,ij 会引用不同的 Integer 对象。

总结

  • 对于 -128 到 127 之间的整数,使用 Integer.valueOf 会返回缓存中的对象实例,因此 i == jtrue
  • 对于超出 -128 到 127 范围的整数,Integer.valueOf 会创建新的对象实例,因此 i == jfalse

如果要比较 Integer 对象的值,推荐使用 equals 方法,而不是 == 运算符:

System.out.println(i.equals(j)); // 比较值是否相等

标签:Java,对象,valueOf,基础,127,128,Integer
From: https://www.cnblogs.com/DCFV/p/18337801

相关文章

  • 医学数字图像基础知识
    目录一、数字图像二、数字图像的基本类型三、常用的医学图像设备(CT,MRI,PET,B超,X光)四、血管造影减影五、读、写、显示图像的OpenCV函数六、图像的放大、缩小、旋转、镜像的原理及OpenCV函数1、图像缩小2、图像的放大3、图像的旋转4、镜像七、数字图像处理应用八、P......
  • wpf基础
    在WPF(WindowsPresentationFoundation)中,Style是一种强大的资源,允许你定义一组属性值,这些值可以被多个控件实例共享。使用Style可以减少重复的XAML代码,并且使得UI的一致性和可维护性得到提高。以下是一些Style的基本概念和用法:定义Style你可以在XAML中的......
  • Amazon SQS 入门:从基础到进阶的完整指南
    这是对AmazonSimpleQueueService(AmazonSQS)的历史年表的介绍。AmazonSQS作为AWS的基础设施服务之一,于2004年11月首次推出,提供全托管的消息排队服务。为了迎接即将到来的2024年11月的20周年,我们提前撰写了这篇文章,以纪念这一里程碑。文章总结了SQS从诞生至今的主要功能和......
  • spring集成elasticsearch并实现基础功能
    什么是elasticsearch?Elasticsearch是一个基于Lucene的开源搜索引擎和分析引擎,它为结构化和非结构化的海量数据提供了实时的搜索、分析和可视化功能。Elasticsearch是ElasticStack(也称为ELKStack)的核心组件之一,其他组件还包括Kibana(用于数据可视化)、Logstash(用于数据......
  • 基于JAVA的采购管理系统设计与实现
    点击下载源码基于JAVA的采购管理系统设计与实现摘要当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,......
  • JavaWeb(10) HTTP协议
    一、HTTP协议1.定义        HTTP超文本传输协议(HTTP-HyperTexttransferprotocol),是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过十几年的使用与发展,得到不断地完善和扩展。它是一种详细规定了浏览器......
  • 【Java】链表
    1.含义链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的 2.基本方法1.size():int    //返回链表长度2.isEmpty():boolean    //判空3.clear():void    //清除所有元素4.contains(Eelement):boolean  ......
  • Animate软件基础:“分散到图层”创建的新图层
    FlashASer:AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084FlashASer:实用的各种AdobeAnimate软件教程https://zhuanlan.zhihu.com/p/675680471FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.com/p/677437436FlashASer:Animate2022零......
  • Animate软件基础:在时间轴中添加或插入帧
    FlashASer:AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084FlashASer:实用的各种AdobeAnimate软件教程https://zhuanlan.zhihu.com/p/675680471FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.com/p/677437436FlashASer:Animate2022零......
  • 基于Java+SpringBoot+Vue的电竞交互管理系统设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......