引入
Java认为一切皆对象,引用数据类型就是对象。但是在Java中8中基本数据类型不是对象,只是表示一种数据的类型形式。
Java为了一切皆对象的思想统一,把8中基本数据类型转换成对应的类,这个类称为基本数据类型的包装类。
/**
* 基本数据类型 包装类(引用数据类型)
* byte Byte
* short Short
* int Integer(特殊)
* long Long
*
* float Float
* double Double
* char Character(特殊)
*
* boolean Boolean
*/
自动装箱:可以直接把基本数据类型的值或者变量赋值给包装类
自动拆箱:可以把包装类的变量直接赋值给基本数据类型
public class PackageClass {
public static void main(String[] args) {
int a = 12;
Integer a1 = 12; // 自动装箱
Integer a2 = a; // 自动装箱
System.out.println(a==a1); // true
Integer a3 = 13;
System.out.println(a2==a3); // false
Integer c = 100;
// int temp1 = null; // 报错
Integer temp = null; // 引用数据类型的默认值可以是null
int c1 = c; // 自动拆箱
double b = 99.9;
double b1 = 99.9;
Double b2 = b;
Integer it = Integer.valueOf(12); // 手工装箱
Integer it1 = new Integer(12); //手工装箱
Integer it2 = 12;
System.out.println(it==it1); // false
System.out.println(it==it2); // true
Integer it3 = 111;
int it33 = it3.intValue(); // 手动拆箱
}
}
包装类的特殊功能
Java为包装类做了一些特殊功能,以便程序员使用。
包装类作为类首先拥有Object类的方法。
包装类作为引用类型的变量可以存储null值。
具体来看特殊功能主要有:
1、可以把基本数据类型的值转换成字符串类型的值
- 调用toString()方法
- 调用Integer.toString(基本数据类型的值)得到字符串
- 直接把基本数据类型+空字符串就得到了字符串
2、把字符串类型的数值转换成对应的基本数据类型的值
- xxx.parsexxx("字符串类型的数值")
- xxx.valueOf("字符串类型的数值"):推荐使用!