一、包装类
- 基本数据类型所对应的引用数据类型(基本数据类型是存放在栈中的,引用数据类型时存放在堆中的)
- Object可统一所有数据,包装类的默认值时null。
包装类对应的基本类型 基本数据类型 包装类型 byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character
二、类型转换与拆箱装箱
- 8种包装提供不同类型间的转换方式:
- Number父类中提供6个共性方法。
Byte、Short、Integer、Long、Float、Double。
public class Demo01 {
public static void main(String[] args) {
//类型转换:装箱,基本类型转换为引用类型的过程
//基本类型
int num1 = 10;
//使用Integer类创建类型转换
Integer integer1 = new Integer(num1);
Integer integer2 = Integer.valueOf(num1);
System.out.println(integer1);
System.out.println(integer2);
System.out.println("============================");
//类型转换:拆箱,引用类型转成基本类型。
Integer integer3 = new Integer(100);
int num3 = integer3.intValue();
System.out.println(integer3);
System.out.println(num3);
System.out.println("============================");
//JDK1.5之后,开始提供自动装箱和拆箱。
int age=100;
Integer integer4 = age;
int age2 = integer4;
System.out.println(integer4);
System.out.println(age2);
}
}
-
- parseXXX()静态方法。
System.out.println("==============字符串型转换为基本类型==============");
//字符串型转换为基本类型
String str = "150";
//使用Integer.parseXXX();
int i = Integer.parseInt(str);
System.out.println(i);
ouble v = Double.parseDouble(str);
System.out.println(v);
System.out.println("==============boolean字符串形式转换为基本类型==============");
//boolean字符串形式转换为基本类型,"true"--->true 非"true"--->false
String str2 = "true";
boolean b = Boolean.parseBoolean(str2);
System.out.println(b);
-
- valueOf()静态方法。
- 注意:需要保证类型兼容,否则抛出NumberFormatException异常。
三、整数缓冲区
- Java预先创建了256个常用的整数包装类型对象。
- 在实际应用当中,对已创建的对象进行复用。
public class Demo02 {
public static void main(String[] args) {
//面试题
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
System.out.println(integer1==integer2);//false(地址不同)
Integer integer3 = Integer.valueOf(100);
Integer integer4 = Integer.valueOf(100);
System.out.println(integer3==integer4);//true(因为Java运行会预先生成-127-128的数据,如果数据大小在这之内则直接从这里面调用,否则再生成。)
Integer integer5 = Integer.valueOf(200);
Integer integer6 = Integer.valueOf(200);
System.out.println(integer5 == integer6);//false(同上)
}
}