包装类与基本数据类型
包装类:可以让基本数据类型获取跟对象一样的属性和特征,行使对象的相关权益
命名:大部分包装类的命名是它的基本类型的名称首字母大写(如float-Float,byte-Byte),但有两个特例,int对应的包装类Integer,以及char对应的包装类Character

包装类常用方法
包装类都是final修饰的,不能被继承。
所有的数值型包装类(Integer Byte Short Long Float Double )直接父类都是Number类;
字符型和布尔型(Character Boolean)直接父类为Object类;
每个包装类有很多方法,去甲骨文官网去看API

基本数据类型和包装类之间的转换
1、每一种基本数据类型都应该有对应的对象类型,方便对基本类型进行操作。包装类型可以解决一些 基本类型解决不了的问题,如有时候需要传递一个Object变量 而你想传递int类型的进去显然不行, 这就要用到包装类。
2、集合不允许存放基本类型数据,只能存放包装类型。
- 装箱:把基本数据类型转换成包装类
(1)自动装箱:不用实例化,直接赋值;
(2)手动装箱:实例化,构造函数的方法int t1=2; Integer t2=t1;int t1=2; Integer t3=new Integer(t1); - 拆箱:把包装类转换成基本数据类型
(1)自动拆箱:
(2)手动拆箱int t4=t2;int t5=t2.intValue();

编程练习1
请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和包装类之间的转换。
程序运行参考效果图如下:

1 | package me.feihong.wrap; |
基本数据类型和字符串之间的转换
1 | 1. 基本数据类型转换为字符串: |

编程练习2
请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和包装类之间的转换。
程序运行参考效果图如下:

1 | package me.feihong.wrap; |
需要知道的几点知识
1.包装类的默认值是null
在包装类当中实现自动拆装箱背后的秘密:
我们直接给包装类赋值实现自动装箱,实际上编译器是做了这些工作:
1.调用valueOf();方法,在这个方法执行时Java中提供了对象池,如果数据大小在-128–+127之间就可以装进这个池子(很明显这个是个8位缓存器)。
2.当你给包装类赋值时,它会在对象池里先查找存不存在这样的一个对象,如果有,就让现在这个对象也指向这个内存空间,直接产生
3.如果超出范围,或者池子里原来没有相同的对象,编译器就会new开辟一个空间

8种基本数据类型对应的包装类中,Double和Float不具备常量池概念。

编程练习3
请按照编辑器中的注释,在对应的空白区域填写对应的代码,完成基本数据类型和字符串之间的转换。
程序运行参考效果图如下:

1 | package me.feihong.wrap; |