「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。
前言
本章是恶补java基础的第二期,主要讲述了包装类与基础类是什么、以及包装类和基础类互相转换,以及其内部实现。
包装类是什么?
包装类正如这幅图一样,被包裹起来的一个整个体就是包装类,包装类内部包装的是基础类型,而基础类型大家很熟悉了就是常见的 int、short、byte、char、float、double、boolean、long,对应的他们都有包装类,也就是把他们装进箱子里,这个我们称为装箱。对应的类有Integer、Short、Byte、Character、Float、Doule、Boolean、Long。
装箱与拆箱
装箱正如上面的简介所说就是把基础类包装起来,而拆箱也就是把包装类型转为基础类型叫做拆箱,而在装箱与拆箱的过程所使用的方法为:包装类.valueOf() 装箱 、 包装类.xxxValue()拆箱。
Integer的装箱拆箱示例
int i = 1;
Integer obj = Integer.valueOf(i); //对i进行装箱
int i2 = obj.intValue(); //把Interger obje对象进行拆箱
自动拆装箱技术
在上面的例子中大家可以看出拆装箱非常的繁琐,如果我在做业务处理的时候还有拆装箱使用会造成大量的代码冗余,所以java在jdk1.5之后更新了一个自动拆装箱技术,听得很高大上其实本质上就是java编译器帮你完成了拆装箱。
java类在执行是有许多阶段,其中一个阶段时编译阶段,而编译器在编译时会根据拆装箱规则来对你的代码进行快速拆装箱,所以1.5之后你可以这样写,单最后编译器编译出来的还是上面的例子所展现的方式。
Integer a = 1;
int b = a;
总结
- 在java1.5之后引入自动拆装箱技术使得开发人员简化代码
- 每个包装类都有自己的构造方法,构造方法中可以直接传值,eg: Integer a = new Integer(2)