#Java#Java中的自动装箱和拆箱
【#Java#Java中的自动装箱和拆箱】
文章图片
文章图片
文章图片
文章图片
Java中的自动装箱和拆箱
Java从1.5开始添加了自动装箱与拆箱的机制 , 可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接 。
自动装箱和拆箱什么是装箱和拆箱?
装箱是基本类型转换成对应的包装类型 , 拆箱是包装类型转为对应的基本类型 。 举个例子:
装箱和拆箱
对于Java的自动装箱和拆箱 , 我们看看源码编译后的class文件 , 其实装箱调用包装类的valueOf方法 , 拆箱调用的是xxxValue方法 , 下面就是变编译后的代码:
编译后的代码
Java中的八种基本类型对应的包装类型的自动装箱和拆箱 , 每种包装类型都定义了2个方法valueOf装箱方法和xxxValue拆箱方法 。
八种类型的装箱和拆箱
何时装箱和拆箱上面说过赋值时会自动装箱和拆箱 , 还有其他情况:
- 进行 = 赋值操作(装箱或拆箱)
- 进行+ , - , * , /混合运算 (拆箱)
- 进行><==比较运算(拆箱)
- 调用equals进行比较(装箱)
- 方法调用时(装箱或者拆箱)
- ArrayListHashMap等集合类 添加基础类型数据时(装箱)
方法调用和比较运算符
编译结果 , 在调用的时候发生了装箱 , 在运算符比较的时候发生了拆箱 。
方法调用
方法重载中的装箱和拆箱在方法调用的时候 , 会发生自动装箱和拆箱 , 但是在方法重载的时候就可能不会装箱和拆箱 , 在方法重写的时候也一样 , 有时间可以自己试一试 。
重载中的拆箱和装箱
拆箱中的空指针在做拆箱时要小心空指针异常 , 因为拆箱的时候会调用包装对象的xxxValue方法 。
测试空指针
测试结果 , 发生了空指针异常 。
空指针异常
Integer引发的生产问题
在这篇文章中我们说了Integer中的缓存问题 , 也是面试常问的面试题 。
推荐阅读
- 「iphone11」苹果手机中的销量冠军,打败小米和三星,登上全球第一的宝座
- 华为手机:五月大降至“退场价”的4款华为手机,你更看好其中的哪一款?
- 「月球」上古传说中的“天”,原来是一个星球,它为何阻挡古人登天?
- 美肤瘦身知识很久转过几次帐,微粒贷就自动开通了82000!,小伙微信发发红包
- #Java#java线程到底有多少种状态?
- 柳先说为何值得推荐?,手机软件中的“清流”:极简主义的夸克
- 汽车之家自动驾驶初创PIX描绘全新城市愿景,福布斯深度报道
- 「」“狼狈为奸”中的狈,到底是什么生物?传说中是狼的军师!
- 『李佳琦』又一“造富”行业浮出水面!马云已抢先布局,00后心中的完美职业
- 钨丝woosmartPro眼中的名城:韵味上海、乐活成都,荣耀30