包装类
1.概述
java为每一个基本数据类型提供了对应的一个包装类,包装类是一个类,并且java在包装类里提供了常用方法。
基本的数据类型和对应包装类的对应关系:
2.创建对象
以Integer类为例创建对象的方法有三种种:
Integer i = new Integer(10);//1. int类型 构造方法创建
Integer i1 = new Integer("123");//1. string类型 构造方法创建
Integer i3 = 10;// 2. 直接使用字面值创建
Integer i2 = Integer.valueOf(10)// 3.使用静态方法创建
3.常用方法
//将int转换成integer对象返回
Integer i2 = Integer.valueOf(10);//1.static Integer valueOf(int i)
Integer i3 = 10;
//将字符串转换成integer类型返回,且字符串的内容必须为纯数字
//反之会抛出NumberFormatException
Integer i4 = Integer.valueOf("11");//2.static Integer valueOf(String s)
System.out.println(i4);
//将字符串转换成int返回,要求字符串的内容必须为纯数字
int i5 = Integer.parseInt("1234");//3.static int parseint(String s)
4.自动装箱与拆箱
实现基本数据类和对应的包装类进行自动转换
- 自动装箱:基本数据类型可以自动转换为对应包装类:
int num = 10;
Integer i6 = num;
- 自动拆箱:包装类自动转换为基本数据类型
Integer i2 = Integer.valueOf(10)
int num1 = i2;
- 原理
自动装箱其实是通过包装类的静态方法valueOf 实现的转换
//i1 i2 直接从创建的数组中取的,数组是[-128 127],所以地址是一样的
Integer i1 = 10;
Integer i2 = 10;
//i3 i4数据超出了数组范围,直接使用构造方法进行创建,所以地址不同
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2);//ture == 比较的是对象地址
System.out.println(i3==i4);//false