1.java中为8种基本数据类型又对应准备了8种包装类型。包装类属于引用数据类型,父类是Object。
基本数据类型 | 包装类型 |
byte | java.lang.Byte(父类Number) |
short | java.lang.Short(父类Number) |
int | java.lang.Integer(父类Number) |
long | java.lang.Long(父类Number) |
float | java.lang.Float(父类Number) |
double | java.lang.Double(父类Number) |
boolean | java.lang.Boolean(父类Object) |
char | java.lang.Character(父类Object) |
Number是一个抽象类,无法实例化。
Number类中都有这样的方法:
①byte byteValue():以byte形式返回知道的数值。
②abstract double doubleValue():以double形式返回知道的数值。
③abstract float floatValue():以float形式返回知道的数值。
④abstract int intValue():以int形式返回知道的数值。
⑤abstract long longValue():以long形式返回知道的数值。
⑥short shortValue():以short形式返回知道的数值。
这些方法所有的数字包装类的子类都有,是负责拆箱的。
2.为什么要再提供8种包装类?
因为有时候方法的形参是Object对象,此时无法传入基本数据类型的数据,因此8种基本数据
类型不够用了,所以SUN公司又提供了8种包装类型。
3.装箱:基本数据类型--(转换为)-->引用数据类型
拆箱:引用数据类型--(转化为)-->基本数据类型
4.在JDK1.5之后,支持自动装箱和自动拆箱机制了。
自动装箱:基本数据类型自动转换成包装类。
自动拆箱:包装类自动转换成基本数据类型。
有了这种机制的好处是方便编程。
5.下面就主要介绍java.lang.Interger,其他包装类型均类似。
构造方法:(但是从JDK9起就过时了)
①Integer(int i)
②Integer(String str) :使用这种构造方法时,如果不是整数值的字符串,会出现异常数
字格式化异常java.lang.NumberFormatException。
常量:
①MAX_VALUE:该类型下的最大值。
②MIN_VALUE:该类型下的最小值。
常用方法查阅帮助手册即可。
有一个重要的静态方法parseInt(String s)。传参String类型的整数值字符串,可以转换为int
类型整数值。
6.一个知识点:一种关于整数值的缓存机制。优点是效率高,缺点是耗费内存。
java中为了提高程序的执行效率,将[-128,127]之间所有的包装对象提前创建好,存储到了一
个方法区的“整数型常量池”当中了,目的是只要用这个区间的数据不需要再new了,直接从整
数型常量池当中取出来(类似String s = "abc")。
7.String int Integer类型的转换:
PS:根据动力节点课程整理,如有侵权,联系删除。