包装类
针对Java的八种数据类型,都有相应的包装类。
这八种数据类型可以分为两大类:
Integer,Short,Long,Double,Float,Byte都是属于Number的子类,表示一个数字。
Character,Boolean则是Object的直接之类。
举例:
int a = 10;
Integer i = new Integer(10);
int a = 10 在这里直接存入栈内存,不进入堆内存。
Integer i = new Integer(10) 这里在栈内存中存放Integer i = “堆内存地址”,在堆内存中存放了int 10这个值。
使用包装类的优势:
1: 在调用方法xxx时,
Public void xxx(Object o){
}
需要传入参数Object o,而真正调用时可以直接传入Integer这个包装类,因为Object是Integer的父类。
2: 可以快速的调用parse方法进行数值转化。
例如int i = Integer.parseInt(“100”)
可以直接将String类型的100转化为int类型的100.
同样还有其他的parseDouble, parseFloat, parseBoolean等等
装箱和拆箱
装箱就是将基本数据类型变为包装类,
拆箱就是将包装类变为基本数据类型。
JDK1.5之后有了自动装箱和拆箱的功能,格式变得更加简洁。
原:
Integer i = new Integer(200);//装箱(手动)
int a = i.intValue(); //拆箱(手动)
现:
Integer j = 200; //装箱(自动)
int b = j; //拆箱(自动)