秒懂基本类型自动装箱
1.概述
每种基本类型都对应一种引用数据类型,叫做基本数据类型包装类。
2.基本类型对应包装类
3.自动拆装箱: JDK5的新特性
在集合中直接存储数字时,给予的是基本类型int类型的数字10,实际存储时,会将int类型的10创建为Integer的对象,再将对象放到集合中。这个自动创建对象的过程叫做自动装箱。
自动装箱:把基本数据类型转成基本数据类型包装类对象
自动拆箱:基本数据类型包装类对象转成基本数据类型.
Integer i = new Integer(10);// 装箱
Integer in = i+10;// 自动装箱,i先自拆,运算,再装,
int num = in + 20;// 自动拆箱,in先自拆,然后相加
基本类型值才能参与运算符运算
参与运算时包装类会自动变成基本数据类型
注意:
在使用时,Integer x = null;代码就会出现NullPointerException。
建议先判断是否为null,然后再使用。
案例:
-
public class Demo4_JDK5 {
-
public static void main(String[] args) {
-
Integer i3 = null;
-
int a = i3 + 100; //底层用i3调用intValue,但是i3是null,null调用方法就会出现空指针异常java.lang.NullPointerException
-
int y = i1.intValue(); //将对象转换为基本数据类型
-
-
}
-
}
案例
-
import java.util.ArrayList;
-
public class DemoArrayList06 {
-
public static void main(String[] args) {
-
//创建集合对象
-
ArrayList<Integer> list = new ArrayList<Integer>();
-
Integer i = new Integer(10);
-
Integer i2 = new Integer(20);
-
Integer i3 = new Integer(40);
-
//添加元素
-
list.add(i);
-
list.add(i2);
-
list.add(i3);
-
//将基本类型值,先自动装箱成对象,再放入集合中
-
// list.add(10);
-
// list.add(20);
-
// list.add(40);
-
-
System.out.println(list);
-
}
-
}
转换进制
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
转换进制
案例:
-
public class Demo1_Integer {
-
public static void main(String[] args) {
-
System.out.println(Integer.toBinaryString(60));(转二进制)
-
System.out.println(Integer.toOctalString(60)); (转八进制)
-
System.out.println(Integer.toHexString(60)) ;(转十六进制)
-
}
-
}