首页 > 其他分享 >Integer 自动拆箱封箱

Integer 自动拆箱封箱

时间:2024-04-24 22:14:22浏览次数:12  
标签:拆箱 false 封箱 IntegerCache Integer true

Integer 自动拆箱封箱验证。

先写一份Integer  Double 代码 

 思考一:这几个值 true ? false ?

结果是:

true

false

false

false

思考二:为什么第一个为true,其他都是 false ? 

理由在这里:

Integer 

自动拆箱和装箱判断 if (i >= IntegerCache.low && i <= IntegerCache.high)

在 -128至127之间的赋值,Integer对象是在IntegerCache.cache产生,会复用已有对象

这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象。

Double 没有拆箱装箱判断。

 

 

 

思考三:这个拆装箱区间能改吗?

答:能,可以通过启动JVM时使用系统属性来更改缓存的最大值。

-Djava.lang.Integer.IntegerCache.high=200 

 

思考四:最小值能改吗?

答:最小值改不了,因为最小值 static final int low = -128; 

 

标签:拆箱,false,封箱,IntegerCache,Integer,true
From: https://www.cnblogs.com/wgy1/p/18156477

相关文章

  • Integer超过128要用对象比较,否则出问题
    一、测试代码publicvoidtestEquals(){intint1=12;intint2=12;Integerinteger1=newInteger(12);Integerinteger2=newInteger(12);Integerinteger3=newInteger(127);Integera1=127;//或者写成Integera1=Integ......
  • 扩展中国剩余定理证明及例题 Strange Way to Express Integers
    前置知识中国剩余定理(CRT),逆元;EXCRT是什么我们知道对于\[\begin{equation} \begin{cases} x\equivc_1\(mod\m_1)\\ x\equivc_2\(mod\m_2)\\ .\\ .\\ .\\ x\equivc_i\(mod\\m_i)\\ \end{cases}\end{equation}\]一个一元线性同余方......
  • 扩展中国剩余定理证明及例题 Strange Way to Express Integers
    前置知识中国剩余定理(CRT),逆元;EXCRT是什么我们知道,对于对于\[\begin{equation} \begin{cases} x\equivc_1\(mod\m_1)\\ x\equivc_2\(mod\m_2)\\ .\\ .\\ .\\ x\equivc_i\(mod\\m_i)\\ \end{cases}\end{equation}\]一个一元线性......
  • [POJ2891]Strange Way to Express Integers公式推导
    没啥事干,想着推个式子玩玩。题目链接题意不过多赘述,直接上过程:由题意得\[\begin{cases}x\equiva_1\,(mod\,\,n_1)\\x\equiva_2\,(mod\,\,n_2)\end{cases}\]展开得\[x=k_1·n_1+a_1=k_2·n_2+a_2\dots①\]移项得\[k_1·n_1=(a_2-a_1)+k_2·n_2\]\[k_1·n......
  • 并发编程之AtomicInteger,AtomicLong,LongAdder
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。AtomicInteger类是系统底层保护的int类型,通过提供执行方法的控制进行......
  • 引用类型,值类型,装箱拆箱
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace引用类型{classProgram{classDataTypeTest{publicintVal;}staticvoidMain(string[]args){......
  • 蓝桥杯备考随手记: BigInteger 和 BigDecimal
    在Java中,BigInteger和BigDecimal是用来处理大整数和高精度浮点数的类,分别属于java.math包。下面分别介绍这两个类的特点、用途和常用方法:BigInteger:特点:BigInteger类表示任意精度的整数,可以处理比long型和int型更大范围的整数。BigInteger是不可变的(immutable)类,一......
  • Java对象转换失败-Long类型转Integer类型
    对象转换工具类/***转换工具类*/publicclassConvertUtils{privatestaticLoggerlogger=LoggerFactory.getLogger(ConvertUtils.class);publicstatic<T>TsourceToTarget(Objectsource,Class<T>target){if(source==null){......
  • 深入解析Java中Integer类型的相等判断
    在Java编程中,Integer类型是我们经常用到的一种基本数据类型,用于表示整数。然而,对于Integer类型的相等性判断,我们可能会遇到一些意料之外的情况。本文将深入探讨Java中Integer类型的相等性判断,并解释其中的一些特殊行为。首先,我们需要理解Java中的包装类(WrapperClasses)。Java......
  • int和Integer的区别
    (1)Integer是int的包装类,int是基本数据类型(2)Integer变量必须实例化会才能使用,int变量则不用(3)Integer的默认值是null,int的默认值是0(4)Integer实际是对象的引用,newInteger()会生成一个指针指向此对象;int则直接存储数据值int和Integer的比较(1)Integeri=newInteger(100);Integ......