包装类的概念
- 基本数据类型所对应的引用数据类型。
- Object可统一所有数据,包装类的默认值是null。
包装类对应
类型转换与装箱、拆箱
装箱:基本类型转换为引用类型的过程
拆箱:引用类型转换为基本类型
JDK1.5之后,提供自动装箱与拆箱
public class Test02 {
public static void main(String[] args) {
int age = 20;
//自动装箱
Integer integer = age;
System.out.println(integer);
//自动拆箱
int age1 = integer;
System.out.println(age1);
}
}
- 8种包装类提供不同类型间的转换方式:
●Number父类中提供的6个共性方法。
●parseXXX()静态方法。
●value0f()静态方法。 - 注意:需保证类型兼容,否则抛出NumberFormatException异常。
package com.zheng.qi;
public class Test03 {
public static void main(String[] args) {
System.out.println("----------基本类型转换为字符串----------");
//基本类型转换为字符串
int num = 100;
//方法一
String s1 = num + "";
//方法二
String s2 = Integer.toString(num);
System.out.println(s1);
System.out.println(s2);
System.out.println("----------字符串类型转换为基本类型----------");
String s3 = "123";
int num1 = Integer.parseInt(s3);
System.out.println(num1);
System.out.println("----------布尔字符串类型转换为基本类型----------");
String s4 = "true";
boolean b = Boolean.parseBoolean(s4);
System.out.println(b);
}
}
Integer缓冲区
面试题:
public class Test04 {
public static void main(String[] args) {
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
//比较的是地址,所以结果为false
System.out.println(integer1 == integer2);
Integer integer3 = 100;//自动装箱,实际代码是Integer integer = Integer.valueOf(100)
Integer integer4 = 100;
//100在缓冲区-128-127之间,200不在就会新建一个对象,和第一个结果一样
System.out.println(integer3 == integer4);
Integer integer5 = 200;
Integer integer6 = 200;
System.out.println(integer5 == integer6);
}
}
结果为:
Java预先创建了256个常用的整数包装类型对象。
在实际应用当中,对已创建的对象进行复用。