0%

包装类

什么是包装类

在面向对象当中 “一切皆对象”

基本数据类型变量不是对象,比如 int a = 10; 当中就没有对象,所以就很矛盾

此时我们就可以对象基本数据类型进行包装,把基本数据类型包装一个对象。

把基本数据类型变的更强大,以面向对象的思想来去使用这些类型。

对基本数据类型包装的好处

使用包装对象后,功能变的更加强大。

以前使用 double 来去表示一个人的分数

此时这个人的分数考了 0 分,可以表示 0.0

如果这个人没有来考试,那就代表这个没有分数 使用包装类型后, 即可表示这两种状态一个 0.0 一个 是 null

基本数据类型就办不到。

包装类当中给我们提供了很多方法,可以直接过来使用

我们要将一个数据转成二进制
使用包装对象后, 就可以直接调用方法算出来
不需要我们再去手动去算。

对基本数据类型进行了增加 —> 每一个基本数据类型都对应一个类,有了类之后, 可以以对象的方式来使用这些类型

装箱操作

概念

把基本数据类型变成 包装类

1
2
3
4
5
6
7
8
9
10
Integer num = new Integer(10);
Integer num2 = Integer.valueOf(20);
System.out.println(num.MAX_VALUE);
System.out.println(num.MIN_VALUE);
System.out.println(num.TYPE);// 知道是有什么基本数据类型包装过来的

double b = 13.5;
Double num3 = new Double(b);
Double num4 = Double.valueOf(14.2);
System.out.println(num2);

1
2
3
4
5
6
7
8
9
int xq = 20;
Integer xq1 = new Integer(xq);
//可以把一个字符串转成Integer类型 字符串当中必须得是数字
Integer str = new Integer("123");
System.out.println(str);
//把整数 转成二进制
System.out.println(Integer.toBinaryString(5));
Double d = new Double(10.5);
System.out.println(d.SIZE);

基本数据类型对应的包装类

自动装箱

可以直接把一个基本数据 类型的值赋值给包装类对象。

拆箱操作

概念

把包装类对象转成对应的基本数据类型我们称为拆箱。

1
2
3
4
5
6
7
8
9
10
11
//装箱操作:把一个基本数据类型的值,转换为对应的包装类对象。
Integer num1 = new Integer(10);
Integer num2 = Integer.valueOf(15);
//拆箱操作:把包装类的对象,转换为对应的基本数据类型的变量
int num3 = num2.intValue();
System.out.println(num2);
System.out.println(num3);
Double d = Double.valueOf(10.5);
double d1 = d.doubleValue();
Long l = new Long(100);
long l1 = l.longValue();

自动拆箱

可以直接把一个包装类对象赋值给基本数据类型的变量

字符串与基本数据类型和包装类型转换

包装类valueof缓存设计

当使用 valueof 创建一个包装类,它内部的实现会先从缓存当中查看是否已经有该存在匹配条件 的值

如果有就直接返回,不会再去创建新的地址。如果没有,就去创建新的地址。

↓赏一个鸡腿... 要不,半个也行↓