包装类
一、概念
-
基本数据类型所对应的类,叫做包装类
-
作用:可以将数据交由Object进行统一管理
-
对应关系
基本数据类型 包装类型 byte Byte short Short char Character int Integer long Long float Float double Double boolean Boolean
二、类型间的转换
package com.baizhi.test;
public class TestInteger {
public static void main(String[] args) {
// 1.基本数据 ----> 包装对象
// ①使用构造方法创建
Integer i1 = new Integer(10);
// ②使用静态方法创建
Integer i2 = Integer.valueOf(10);
// 2.包装对象 ----> 基本数据
// 使用包装类中的成员方法
int i3 = i1.intValue();
// 3.基本数据 ----> 字符串
// ①使用字符串拼接(拼接空串)
String s1 = 14 + "";
// ②使用String的静态方法
String s2 = String.valueOf(14);
// 4.字符串 ----> 基本数据
// 使用包装类中的静态方法
// 注意:要求该字符串必须是由纯数字构成
int i4 = Integer.parseInt("14");
// 5.包装对象 ----> 字符串
// 使用字符串拼接(拼接空串)
String s3 = 14 + "";
// 6.字符串 ----> 包装对象
// ①使用构造方法创建
Integer i5 = new Integer("10");
// ②使用静态方法创建
// 注意:要求该字符串必须是由纯数字构成
Integer i6 = Integer.valueOf("10");
}
}
三、自动的装箱与拆箱
- 将基本的数据类型转换成包装类型的过程称为装箱
- 将包装类型转换成基本的数据类型的过程称为拆箱
- JDK1.5之后: 包装类型和基本数据类型之间自动转换,称为自动装箱、自动拆箱
四、Integer的缓存区
Java为了提高效率,对-128~127之间的Integer类型数据做了包装,放在常量池中
package com.baizhi.test;
public class TestInteger {
public static void main(String[] args) {
// -128~127之间的值有缓存,所以指向同一个对象
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1 == i2);
// -128~127之外的值没有缓存
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);
// 使用new语句创建的对象不会使用缓存区
Integer i5 = new Integer(127);
Integer i6 = new Integer(127);
System.out.println(i5 == i6);
}
}