什么是包装类
在面向对象当中 “一切皆对象”
基本数据类型变量不是对象,比如 int a = 10; 当中就没有对象,所以就很矛盾
此时我们就可以对象基本数据类型进行包装,把基本数据类型包装一个对象。
把基本数据类型变的更强大,以面向对象的思想来去使用这些类型。
对基本数据类型包装的好处
使用包装对象后,功能变的更加强大。
以前使用 double 来去表示一个人的分数
此时这个人的分数考了 0 分,可以表示 0.0
如果这个人没有来考试,那就代表这个没有分数 使用包装类型后, 即可表示这两种状态一个 0.0 一个 是 null
基本数据类型就办不到。
包装类当中给我们提供了很多方法,可以直接过来使用
我们要将一个数据转成二进制
使用包装对象后, 就可以直接调用方法算出来
不需要我们再去手动去算。
对基本数据类型进行了增加 —> 每一个基本数据类型都对应一个类,有了类之后, 可以以对象的方式来使用这些类型
装箱操作
概念
把基本数据类型变成 包装类
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);
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);
基本数据类型对应的包装类
自动装箱
可以直接把一个基本数据 类型的值赋值给包装类对象。
拆箱操作
概念
把包装类对象转成对应的基本数据类型我们称为拆箱。
//装箱操作:把一个基本数据类型的值,转换为对应的包装类对象。 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 创建一个包装类,它内部的实现会先从缓存当中查看是否已经有该存在匹配条件 的值
如果有就直接返回,不会再去创建新的地址。如果没有,就去创建新的地址。