一、基本类型包装类
1.1、基本类型包装类概述
- 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
- 基本类型包装类最常见操作是:用于基本类型和字符串之间的相互转换。
1.2、基本数据类型对应的包装类
| 基本数据类型 |
包装类 |
| byte |
Byte |
| short |
Short |
| int |
Integer |
| long |
Long |
| float |
Float |
| double |
Double |
| char |
Character |
| boolean |
Boolean |
1.3、Integer 包装类
1.3.1、Integer 类的概述
- Integer 类包装一个对象中的原始类型 int 的值。
1.3.2、Integer 类的构造方法和静态方法获取对象
| 方法名 |
说明 |
| public Integer(int value) |
根据 int 值创建 Integer 对象(过时) |
| public Integer(String s) |
根据 String 值创建 Integer 对象(过时) |
| public static Integer valueOf(int i) |
返回表示指定的 int 值的 Integer 实例 |
| public static Integer valueOf(String s) |
返回一个 Integer对象,保存由指定的 String给出的值 |
1.3.2.1、Integer(int value) 构造方法
Integer ii = new Integer(100);
System.out.println(ii);
1.3.2.2、Integer(String s) 构造方法
- 根据 String 值创建 Integer 对象。
Integer is = new Integer("100"); // 此字符串的内容必须是整数
System.out.println(is);
1.3.2.3、valueOf(int i) 静态方法
- 返回表示指定的 int 值的 Integer 实例。
Integer ii = Integer.valueOf(100);
System.out.println(ii);
1.3.2.4、valueOf(String s) 静态方法
- 返回一个保存指定值的 Integer 对象 String。
Integer is = Integer.valueOf("100"); // 此字符串的内容必须是整数
System.out.println(is);
1.3.3、int和 String的相互转换
1.3.3.1、int ---> String转换
- public static String valueOf(int i):返回 int 参数的字符串表示形式。该方法是 String 类中的方法。
// 方法一
int a = 123;
String s = "" + 123;
System.out.println(s);
// 方法二
int a = 123;
String s = String.valueOf(a);
System.out.println(s);
1.3.3.2、String ---> int转换
- public static int parseInt(String s):将字符串解析为 int 类型。该方法时 Integer 类中的方法。
// 方法一
// String ---> Integer ---> int
String a = "150";
Integer integer = Integer.valueOf(a);
// 使用 intValue() 方法把 Integer 类型转换为 int 类型。
int i = integer.intValue();
System.out.println(i);
// 方法二
String a = "150";
int i = Integer.parseInt(a);
System.out.println(i);
1.4、Byte 包装类
1.4.1、Byte 类的概述
- Byte 类包装一个对象中的原始类型 byte 的值。
1.4.2、Byte 类的构造方法和静态方法获取对象
| 方法名 |
说明 |
| public Byte(byte value) |
根据 byte值创建 Byte对象(已过时) |
| public Byte(String s) |
根据 String值创建 Byte对象(已过时) |
| public static Byte valueOf(byte b) |
返回表示 byte值的 Byte实例 |
| public static Byte valueOf(String s) |
返回一个 Byte对象,保存由指定的 String给出的值 |
1.4.2.1、Byte(byte value) 构造方法
// 第一种:使用变量名传入 byte值。
byte bt = 127;
Byte aByte = new Byte(vt);
System.out.println(aByte);
// 第二种:把数值强制转换为 byte值
Byte aByte = new Byte((byte)127);
System.out.println(aByte);
1.4.2.2、Byte(String s) 构造方法
Byte aByte = new Byte("127");
System.out.println(aByte);
1.4.2.3、valueOf(byte b) 静态方法
// 第一种:使用变量名传入 byte值。
byte bt = 127;
Byte aByte =Byte.valueOf(bt);
System.out.println(aByte);
// 第二种:把数值强制转换为 byte值
Byte aByte =Byte.valueOf((byte)127);
System.out.println(aByte);
1.4.2.4、valueOf(String s) 静态方法
- 返回一个Byte对象,保存由指定的String给出的值。
Byte aByte =Byte.valueOf("127");
System.out.println(aByte);
1.5、Short 类
1.5.1、Short 类的概述
- Short类包装一个对象中的原始类型 short的值。
1.5.2、Short 类的构造方法和静态方法
| 方法名 |
说明 |
| public Short(short value) |
根据 int 值创建 Short 对象(过时) |
| public Short(String s) |
根据 String 值创建 Short 对象(过时) |
| public static Short valueOf(short s) |
返回表示指定的 short值的 Short实例 |
| public static Short valueOf(String s) |
返回一个 Short对象,保存由指定的 String给出的值 |
1.5.1、Short(short value) 构造方法
// 第一种:使用变量名传入 short值。
short sh = 128;
Short aSh = new Short(sh);
System.out.println(aSh);
// 第二种:把数值强制转换为 short值
Short aShort = new Short((short) 123);
System.out.println(aShort);
1.5.2、Short(String s) 构造方法
Short aShort = new Short("123");
System.out.println(aShort);
1.5.3、valueOf(short s) 静态方法
short sh = 128;
Short aSh = Short.valueOf(sh);
System.out.println(aSh);
1.5.4、valueOf(String s) 静态方法
- 返回一个保存指定值的 Short对象 String。
Short aShort = Short.valueOf("123");
System.out.println(aShort);
1.6、Long 类
1.6.1、Long 类的概述
1.6.2、Long 类的构造方法和静态方法获取对象
| 方法名 |
说明 |
| public Long(long value) |
根据 long 值创建 Long 对象(过时) |
| public Long(String s) |
根据 String 值创建 Long 对象(过时) |
| public static Long valueOf(long l) |
返回表示指定的 long 值的 Long 实例 |
| public static Long valueOf(String s) |
返回一个 Long对象,保存由指定的 String给出的值 |
1.6.2.1、Long(long value) 构造方法
Long aLong = new Long(123L);
System.out.println(aLong);
1.6.2.2、Long(String s) 构造方法
Long aLong = new Long("1235");
System.out.println(aLong);
1.6.2.3、valueOf(long l) 静态方法
Long aLong = Long.valueOf(123L);
System.out.println(aLong);
1.6.2.4、valueOf(String s) 静态方法
- 返回一个 Long对象,保存由指定的 String给出的值。
Long aLong1 = Long.valueOf("123");
System.out.println(aLong1);
1.7、Float 类
1.7.1、Float 类的概述
- Float类在一个对象中包含一个原始类型float的值。
1.7.2、Float 类的构造方法和静态方法
| 方法名 |
说明 |
| public Float(float value) |
根据 float 值创建 Float 对象(过时) |
| public Float(String s) |
根据 String 值创建 Float 对象(过时) |
| public static Float valueOf(float f) |
返回表示指定的 float 值的 Float 实例 |
| public static Float valueOf(String s) |
返回一个 Float对象,保存由指定的 String给出的值 |
1.7.2.1、Float(float value) 构造方法
Float aFloat = new Float(12f);
System.out.println(aFloat);
1.7.2.2、Float(String s) 构造方法
Float aFloat1 = new Float("123");
System.out.println(aFloat1);
1.7.2.3、valueOf(float f) 静态方法
- 返回表示指定的 float 值的 Float 实例。
Float aFloat = Float.valueOf(123f);
System.out.println(aFloat);
1.7.2.4、valueOf(String s) 静态方法
- 返回一个 Float对象,保存由指定的 String给出的值。
Float aFloat1 = Float.valueOf("123");
System.out.println(aFloat1);
1.8、Double 类
1.8.1、Double 类的概述
- Double类包装一个对象中的基元类型double的值。
1.8.2、Double 类的构造方法和静态方法
| 方法名 |
说明 |
| public Double(double value) |
根据 double 值创建 Double 对象(过时) |
| public Double(String s) |
根据 String 值创建 Double 对象(过时) |
| public static Double valueOf(double d) |
返回表示指定的 double 值的 Double 实例 |
| public static Double valueOf(String s) |
返回一个 Double对象,保存由指定的 String给出的值 |
1.8.2.1、Double(double value) 构造方法
Double aDouble = new Double(3.14);
System.out.println(aDouble);
1.8.2.2、Double(String s) 构造方法
Double aDouble1 = new Double("3.14");
System.out.println(aDouble1);
1.8.2.3、valueOf(double d) 静态方法
- 返回表示指定的 double 值的 Double 实例。
Double aDouble = Double.valueOf(3.14);
System.out.println(aDouble);
1.8.2.4、valueOf(String s) 静态方法
- 返回一个 Double对象,保存由指定的 String给出的值。
Double aDouble1 = Double.valueOf("3.14");
System.out.println(aDouble1);
1.9、Character 类
1.9.1、Character 类的概述
- Character类包装一个对象中的原始类型char的值。
1.9.2、Character 类的构造方法和静态方法
| 方法名 |
说明 |
| public Character(char value) |
根据 char 值创建 Character 对象(过时) |
| public static Character valueOf(char c) |
返回表示指定的 char 值的 Character 实例 |
1.8.2.1、Character(char value) 构造方法
- 根据 char 值创建 Character 对象。
Character character = new Character('1');
System.out.println(character);
1.8.2.3、valueOf(char c) 静态方法
- 返回表示指定的 char 值的 Character 实例。
Character a = Character.valueOf('a');
System.out.println(a);
1.11、自动装箱和拆箱
1.11.1、自动装箱
1.11.2、自动拆箱
1.11.3、出现的问题
- 引用类型赋值为 null
Integer In = null;
// 需要添加 if 判断引用类型是否为 null
if(In != null) {
In += 200; // NullPointerException
}
System.out.println(In);
- 注意:
- 在使用包装类类型的时候,如果做操作,最好先判断是否为 null
- 我们推荐的是,只要是对象,在使用前就必须进行不为 null 的判断