Integer对象范围(-128-127)之间(Integer. valueOf()方法)

1.Integer. valueOf()方法的作用

 Integer. valueOf()可以将基本类型int转换为包装类型Integer,或者将String转换成Integer,String如果为Null或“”都会报错

看下面代码示例

取值为127时

 

 

取值为128时

 

为什么会是这样呢?
首先,我们看一下双等号“ == ”和equals()方法的不同之处。
双等号“ == ”,对于基本数据类型,比较的是它们的值。
对于非基本类型,比较的是它们在内存中的存放地址,或者说是比较两个引用是否引用内存中的同一个对象。

equals()是在Object基类中定义的方法。
这个方法的初始行为是比较对象的内存地址,但在一些类库中,这个方法被覆盖掉了,如String,Integer,Date等。在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,它们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号“ == ”进行比较的,所以比较后的结果跟双等号“ == ”的结果相同。

 

 

 

看下源码:

 

 

从下面的源码可以看出,valueOf()在返回之前,会进行判断,判断当前 i的值是否在 -128到127之间。
如果存在,则直接返回引用,不再重新开辟内存空间。
如果不存在,就创建一个新的对象。
利用缓存,这样做既能提高程序执行效率,还能节约内存。

 

在Integer类装载入内存时,把[-128, 127]范围内的整型数据装包成Integer类,并将其对应的引用放入到cache数组中。

从上面的源码可以看出,valueOf()在返回之前,会进行判断,判断当前 i的值是否在 -128到127之间。
如果存在,则直接返回引用,不再重新开辟内存空间。
如果不存在,就创建一个新的对象。
利用缓存,这样做既能提高程序执行效率,还能节约内存。

Integer a1= 127; Integer a2 = 127; 因为 IntegerCache中已经存在此对象,直接返回引用,引用相等并且都指向缓存中的数据,所以这时候a1 == a2返回true。

Integer a1 = 128; Integer a2 = 128;因为a1,a2的值大于127,不在[-128, 127]范围内,所以虚拟机会在堆中重新new一个 Integer对象来存放128,创建两个对象就会产生两个这样的空间。两个空间的地址不同,返回到栈中的引用的值也就不同,所以这时候a1 == a2返回false。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统基础:进程知识笔记(三)

1、死锁概念知识 计算机中存在许多互斥资源(打印机)、软件资源(进程表、临界区)如果两个进程同时调用打印机,或同时进入临界区必然会出现问题。 死锁:指两个以上的进程互相要求对方已经占有的资源导致无法继…

垂直梯形校正画质损失多少_梯形校正功能是怎么实现的?其中可大有学问

梯形校正这个概念,想必大部分投影仪用户早已耳熟能详。所谓的梯形校正,指的是当我们的投影仪位置摆放不正时,投射出来的画面会是一个梯形,这时候需要通过投影仪的梯形校正功能将画面调整为可以正常观看的矩形。虽然目前市场上的大…

操作系统基础:存储管理知识笔记(一)

1、存储器基础知识 存储器管理的对象是主存或内存,存储器是计算机系统中非常关键的资源,用来存放各种信息的主要场所。存 储器管理功能主要包括:主存空间的分配和回收、提供主存利用率、扩充主存、主存信息的保护。 2、存储器结构 存储器结构…

asp点击按钮sql列求和_助你2020晋级互联网大数据阵营(一):轻轻松松学SQL

毫不负责任的说,你和数据科学家最大的鸿沟,就差一个SQL语言:)入门后,后面的事情就简单了为了帮大家尽快入门Hive SQL、学会提数和分析,实现在大数据领域大干一场的愿望,帮你准备好了数据,准备好…

幂等和高并发在电商系统中的使用

在Java web项目开发中,经常会听到在做订单系统中生成订单的时候,要做幂等性控制和并发控制,特对此部分内容作出总结,在高并发场景下,代码层面需要实现并发控制;但是幂等性,其实更多的是系统的接…

@transactional注解失效情况

先来了解一下Transactional注解事务的特性吧,可以更好排查问题 1、service类标签(一般不建议在接口上)上添加Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方…

计算机c盘隐藏了怎么办,win7怎么隐藏c盘 win7c盘被隐藏了怎么解除

很多的电脑用户担心其他用户在使用电脑时修改c盘中的重要文件,所以会将c盘设置为隐藏,那么大家知道在win7系统中怎么隐藏c盘吗?方法很简单,下面小编为大家带来win7隐藏c盘的详细教程,不知道怎么隐藏的朋友可以查看下面的教程学习…

操作系统基础:存储管理知识笔记(二)

一、分页存储管理 1、分页存储管理介绍 1.1 分页原理 页:将一个进程的地址空间划分为若干个大小相等的区域称为页。 块、页框:主存空间划分成与页相同的若干个物理块。 1.2 地址结构 分页系统地址结构:前一部分为页号;后一部分为页…

人工智能 信道估计 深度学习_DEMO演示|基于IVP02D 人工智能工作站的深度学习引擎,实现人群热力估计...

近年来,随着深度学习在计算机视觉领域获得广泛应用,算法框架也日渐成熟,例如基于深度神经网络的人群密度分析,通过自动学习能获得更有效的人群特征,相较于传统方法取得了一定的提高。AI小知识人群密度分析(…

SPSS学习中涉及的统计知识

1、独立性检验 2、方差分析中方差齐性检验 3、非参数检验 4、p-p图 5、卡方检验:研究分类因变量与分类自变量的关系。独立性检验 6、t检验:研究连续因变量与分类自变量的关系。 7、哑变量 总结: 因变量连续,自变量连续&#xff0c…

vscode kite插件_微软发布 VS Code Python 插件 7 月更新

微软发布了 7 月的 Visual Studio Code Python 扩展更新,此版本总共修复了 51 个问题,其中包括:支持新的语言服务器:PylanceGather 扩展将 Notebook 导出为 HTML 和 PDF调试器的反向连接支持新的语言服务器:PylancePyl…

360浏览器打不开微信的连接服务器,上午还能打开,下午360浏览器打不开微信公 – 手机爱问...

2011-08-27ie,搜狗,谷歌浏览器都打不开,说打不开ipad说服务器超时是新浪在更新设备吗?一般你能进入爱问就可以进入邮箱,下面的方法看看(如果你是铁通的可能是铁通的问题)。可能是服务器故障引起的,请不要着…

域名还能绑定动态IP?看完又涨知识了!!

点击上方蓝色“冰河技术”,关注并选择“设为星标”持之以恒,贵在坚持,每天进步一点点!作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。…

java 及时释放内存_JMM(一):初识Java内存模型

在并发编程中,线程之间的通信是一个很关键的问题,而该问题解决方案主要可分为两大类:消息传递、共享内存。前者有以Erlang语言为代表的Actor模型,而后者中典型的则是Java语言。对于消息传递机制而言,线程之间必须通过发…

php 复习

对所学知识的依次基础的总结 <?php一.php基础语法 1.输出语句&#xff1a;**echo(可以输出多个字符串); print&#xff08;输出一个字符串&#xff09;; print_r&#xff08;输出数组&#xff09;; **var_dump()&#xff08;具体 的数据 还有它的类型&#xff09;;2.php是弱…

mac新建文件夹快捷键

mac新建文件夹快捷键 COMMAND SHIFT N

python382怎么用_用python做UDP连接

写个客户端 #!/usr/bin/env python from socket import * HOST 10.2.167.115 PORT 20001 BUFSIZE 1024 ADDR (HOST, PORT) udpClientSock socket(AF_INET, SOCK_DGRAM) while True: data raw_input(Enter the message you want to send >) if not data: break udpClie…

更新系统后魔兽世界无法连接至服务器,《魔兽世界:熊猫人之谜》5.0launcher更新无法连接服务器解决方法...

早上launcher一半的时候&#xff0c;出现无法链接服务器&#xff0c;并且自动关闭。测试多种办法&#xff0c;已经解决。1、打开目录x:/world of warcraft/temp2、运行目录下&#xff1a;wow-4.3-5.0.15890-zhcn-downloader.exe (一个英文下载器)3、报错could not connect to t…

电脑维修知识:电脑常见故障维修大全及解决方法

电脑已经成为我们学习生活娱乐必不可少的设备了&#xff0c;用得时间久了难免会遇到小故障&#xff0c;今天我们一起来看下遇到常见的电脑方面的小故障&#xff0c;我们应该如何去自己检测和维修吧。电脑检测故障我们还是要从电脑的几大硬件开始检查起。1、CPU打开机箱查看CPU风…

工程图样中粗实线的用途_图纸天天画,粗实线和细实线的线宽比例是多少?2:1还是3:1?...

点击上方头条号“机械设计一点通”关注我们&#xff0c;每天学习一个机械设计相关知识点我们知道&#xff1a;机械制图中为了表示不同内容&#xff0c;并能分清主次&#xff0c;必须使用不同线型。图线的线型由线宽和线素长度等构成&#xff0c;机械制图中各种线型都有相应宽度…