Java有一个类型系统由两部分组成,包含基本类型(primitive),如int、double和boolean,和引用类型(reference type),如String和List。
每个基本类型都有一个对应的引用类型,称为装箱基本类型(boxed primitive)。
Java 1.5版本中加入了自动装箱(autoboxing)和自动拆箱(auto-unboxing)。
int i = new Integer(1);
Integer j = 2;
基本类型和装箱基本类型之间的区别:
1、基本类型之后值,而装箱基本类型不仅有相同的值还可能具有不同的同一性,也就是装箱基本类型值相同不一定等号判断相等。
2、装箱基本类型有可能有null。
3、基本类型通常比装箱基本类型更节省时间和空间。
对装箱基本类型运用==操作符几乎总是错误的。
当一项操作中混合使用基本类型和装箱基本类型时,装箱基本类型就会自动拆箱。
static Integer k;
public static void main(String[] args) {
int i = new Integer(100);
Integer j = 100;
Integer g = 100;
Integer f = new Integer(100);
System.out.println(i == j);
System.out.println(j == g);
System.out.println(j == f);
System.out.println(k == j);
System.out.println(k == i);
// 后台打印:
// true
// true
// false
// false
// Exception in thread "main" java.lang.NullPointerException
// at HelloWorld49.main(HelloWorld49.java:13)
}
最常举例的装箱和拆箱的错误应用:
反复自动拆箱装箱,影响性能。
Long sum = 0L;
for(long i=0;i<Integer.MAX_VALUE;i++){
sum += i;
}
但是,一些时候还必须使用装箱基本类型,比如泛型、反射等
基本类型的选择要优于装箱基本类型。
自动装箱减少了使用装箱基本类型的繁琐性,但是没有减少他的风险。比如上面的空指针和==号比较问题。
分享到:
相关推荐
Dup-Pack:基于CRIS的FPGA装箱方法.pdf
设计了一种电路改写指令系统,并在CSPack算法的基础上提出了一种新的FPGA装箱...实验结果表明Dup-Pack的装箱结果相比较于T-VPack可减少11.26%的面积,在完成相同逻辑功能的情况下,较传统CSPack装箱速度提升2.77倍。
航运行业系列概览:2019年中国集装箱租赁行业概览
集装箱装箱优化软件介绍: 对于给定的集装箱内部空间尺寸和长方体纸箱的尺寸,通过最优化计算求解,来获得较优的装箱方案(也即较大的装箱数)。 集装箱装箱优化软件用途: 用途是远洋、铁路及公路等集装箱运输领域...
C#示例:装箱、拆箱、自定义数据类型转换、ToString方法重载、类方法扩展。 源代码(工程)
c#的数值类型还有装换和重要的装箱和拆箱,以及实例,很不错的哦
温故而知新可以为师矣,牢固的基础能支撑我们前进的更远!
一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6。这些产品通常使用一个 6*6*h 的长方体包裹包装然后邮寄给客户。...
集装箱装箱优化软件专业算集装箱立方数是否装下的软件
值类型和引用类型的区别: 似乎“值类型和引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第... C#中基本数据类型是值类型,结构也是值类型。而数组、类、接口、字符串都是引用类型。
6个重要的NET概念:栈-堆-值类型-引用类型-装箱-拆箱.doc
在Kotlin官方文档介绍基本类型时,给我们说明了在有些情况下会对基本类型自动进行装箱操作。 但是具体是如何进行装箱,以及何时进行装箱缺没有提供详细介绍。只是提供了一个例子,如下: val a: Int = 10000 print...
//int类型为什么能装箱到object类型,但不能装箱到string类型或Person类型, //因为object类型时int类型的父类。 //2.拆箱时,必须用装箱时的类型来拆箱 //装箱时如果是int,拆箱必须用int,不能用double //3....
针对二维矩形条带装箱问题提出了一种启发式布局算法,即底部左齐择优匹配算法(lowest—level left align bestfit,简称LLABF).LLABF算法遵循最佳匹配优先原则,该原则综合考虑完全匹配优先、宽度匹配优先、高度...
铁龙物流:中铁铁龙集装箱物流股份有限公司2020年年度报告.PDF
国际联运中集装箱单据及集装箱装箱软件算法介绍概要.docx国际联运中集装箱单据及集装箱装箱软件算法介绍概要.docx国际联运中集装箱单据及集装箱装箱软件算法介绍概要.docx国际联运中集装箱单据及集装箱装箱软件算法...
6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱[整理].pdf
主要介绍了Kotlin基本类型自动装箱出现问题解决办法的相关资料,希望通过本文能帮助到大家,让大家遇到这样的问题顺利解决,需要的朋友可以参考下
每组测试数据输入的第1行中有2个正整数n和C。正整数n是集装箱个数;正整数C是轮船的载重量。接下来的一行中有n个整数,分别表示n个集装箱的重量,它们之间用空格分隔。 Output 对应每组输入,输出的每行是计算出的...