博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本类型优先于装箱基本类型
阅读量:6694 次
发布时间:2019-06-25

本文共 1002 字,大约阅读时间需要 3 分钟。

hot3.png

java1.5增加了自动装箱(autoboxing)和自动拆箱(auto-unboxing)。

基本类型和装箱基本类型的区别:

1:基本类型只有值,而装箱类型则具有与它们的值不同的同一性

2:基本类型只有值,而装箱类型除了它对应基本类型的所以功能值之外,还有个非功能值:null

3:基本类型通常比装箱类型更节省时间和空间

Comparator
naturalOrder = new Comparator
() {@Overridepublic int compare(Integer o1, Integer o2) { return o1 < o2 ? -1 : (o1 == o2 ? 0 : 1);}}; System.out.println(naturalOrder.compare(new Integer(10), new Integer(10)));//结果是1原因:对表达式计算o1 < o2会导致Integer实例被自动拆箱,然后执行表达式o1 == o2,它在两个对象引用上执行同一性比较,如果o1和o2引用表示同一个int值的Integer实例,结果返回false。对装箱类型运用==操作符几乎总是错误的
static Integer i;public static void main(String[] args) {	if(i==42)	System.out.println("Unbelievable");}//结果java.lang.NullPointerException原因:i是一个Integer,而不是一个int,所有初始值是null当在一项操作中混合使用基本类型和装箱类型时,装箱类型就会自动拆箱。如果null对象引用被自动拆箱,就会得到一个NullPointerException
Long sum=0L;long startTime=new Date().getTime();for(long i=0;i
什么时候应该使用装箱类型:

1:作为集合中的元素、键和值

2:在参数化类型中,必须使用装箱类型作为类型参数,因为java不允许使用基本类型

3:在进行反射的方法调用时,必须使用装箱基本类型

转载于:https://my.oschina.net/OutOfMemory/blog/95705

你可能感兴趣的文章
Swift语音和文本的转换
查看>>
Array方法汇总
查看>>
flex布局
查看>>
四大组件之Service_绑定服务
查看>>
swift中使用Objective C代码
查看>>
MS15-106 JScript ArrayBuffer.slice 任意地址读漏洞分析
查看>>
写一个复制 GitHub 仓库目录结构的cli
查看>>
Docker了解
查看>>
我的另类秋招 | 掘金技术征文
查看>>
【刷算法】把数组排成最小的数
查看>>
【刷算法】数值的整数次方
查看>>
笔记-OC语言的编译时与运行时
查看>>
Swift 让 Async 帮你解决线程问题
查看>>
ViewGroup事件分发机制
查看>>
LeetCode--9. 回文数
查看>>
flutter-dart 组件构造函数介绍
查看>>
基于Java语言构建区块链(三)—— 持久化 & 命令行
查看>>
iOS开发,轻松获取根控制器当前控制器的正确方式
查看>>
Akka系列(九):Akka分布式之Akka Remote
查看>>
CDH安装系统环境准备——系统版本和安装包下载地址指南
查看>>