目录
一、八大包装类
1、八大包装类的体系图:
二、装箱和拆箱
三、intValue()和valueOf()方法
1、intValue()
2、valueOf()
四、包装类型和String类型的相互转换
五、包装类的常用方法(以Integer和Character为例)
一、八大包装类
包装类是指八种基本数据类型相对应的引用类型。这样做让基本数据类型有了类的特点,就可以调用类中的方法。
1、八大包装类的体系图:
二、装箱和拆箱
装箱:基本类型--->包装类型;反之是拆箱。
jdk5之前是手动装箱和拆箱;jdk5之后是自动装箱和拆箱,自动装箱底层调用的是valueOf方法,比如Integer.valueOf()。
下面是手动装箱/拆箱和自动装箱/拆箱的例子:(以Integer为例,其他的都类似)
package com.hspedu.Wrapper;
public class Integer01 {
public static void main(String[] args) {
//演示int <--> Integer 的装箱和拆箱
//jdk5前是手动装箱和拆箱
//手动装箱 int->Integer
int n1 = 100;
Integer integer = new Integer(n1);
Integer integer1 = Integer.valueOf(n1);
//手动拆箱 Integer -> int
int i = integer.intValue();
//jdk5以后(包括jdk5),就可以自动装箱和自动拆箱
int n2 = 200;
//自动装箱 int->Integer
Integer integer2 = n2; //自动用的是Integer.valueOf(n2)
//自动拆箱 Integer -> int
int n3 = integer2; //底层仍然使用的是 intValue()方法
}
}
三、intValue()和valueOf()方法
1、intValue()
intValue()方法是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它,因此不单是Integer有intValue方法,Double,Long等都有此方法。
intValue()方法就是输出int数据,该方法在每个数值类中的具体实现都是不同的。例如在Double和Float中就是去除小数点后面的数字,而在Long中又是别的处理结果。
package com.hspedu.Wrapper;
public class Integer02 {
public static void main(String[] args) {
Double d = 2.9;
Float f = 2.9f;
System.out.println(d.intValue()); //结果是2
System.out.println(f.intValue()); //结果是2
}
}
2、valueOf()
valueOf()方法是String类中的static方法,用于将基本数据类型转换为String类型。
- String.valueOf(boolean b) : 将boolean类型的变量 b 转换成字符串
- String.valueOf(char c) : 将char类型的变量 c 转换成字符串
- String.valueOf(char[] data) : 将char类型的数组 data 转换成字符串
- String.valueOf(double d) : 将 double 类型的变量 d 转换成字符串
- String.valueOf(float f) : 将 float 类型的变量 f 转换成字符串
- String.valueOf(int i) : 将 int 类型的变量 i 转换成字符串
- String.valueOf(long l) : 将 long 类型的变量 l 转换成字符串
- String.valueOf(Object obj) : 将 obj 对象转换成字符串, 等于 obj.toString()
四、包装类型和String类型的相互转换
案例演示:
案例代码:
package com.hspedu.Wrapper;
public class Wrapper_String {
public static void main(String[] args) {
//包装类(Integer为例)->String
Integer i = 100; //自动装箱
//方式1
String str1 = i + "";
//方式2
String str2 = i.toString();
//方式3
String str3 = String.valueOf(i);
//String->Integer
String str4 = "12345";
//方式1
Integer i2 = Integer.parseInt(str4); //使用到自动装箱
//方式2
Integer i3 = new Integer(str4); //构造器
}
}