Java 中有 8 个基本类型,分别对应的包装类如下:
byte -- Byte
boolean -- Boolean
short -- Short
char -- Character
int -- Integer
long -- Long
float -- Float
double -- Double
为什么要有包装类:
基本数据类型方便、简单、高效,但泛型不支持、集合元素不支持
不符合面向对象思维
包装类提供很多方法,方便使用,如 Integer 类 toHexString(int i)、parseInt(String s) 方法等等
接下来以int基本类型与对应的包装类Integer为例看一下装箱,拆箱的过程:
- public class Demo03 {
- public static void main(String[] args) {
- int a = 20;
- //自动装箱:基本类型的变量a赋值给Integer类型的变量b
- Integer b = a;
- System.out.println(b);
- //自动装箱:将Integer类型的变量b赋给基本类型的变量c
- int c = b;
- System.out.println(c);
- }
-
- }
运行结果:
Java中除了支持基本数据类型与对应包装类之间进行转换,还提供其他方法来支持基本数据类型,基本数据包装类以及字符类之间的相互转换。
- public class Demo11 {
- public static void main(String[] args) {
- int num = 123;
- //通过String.valueOf()方法将基本类型转换为字符串
- String string = String.valueOf(num);
- System.out.println("将int类型转换为字符串的结果:"+string);
- //通过包装类的valueOf()静态方法将基本类型的字符串转换为包装类
- String str = "998";
- Integer integer = Integer.valueOf(num);
- Integer integer2 = Integer.valueOf(str);
- System.out.println("将int类型转换为包装类的结果:"+integer);
- System.out.println("将字符串变量转换为包装类的结果:"+integer2);
- //通过包装类的有参构造方法将基本类型和字符串转换为包装类
- Integer integer3 = new Integer(num);
- Integer integer4 = new Integer(str);
- System.out.println("通过构造器将int类型转换为包装类的结果:"
- +integer3);
- System.out.println("通过构造器将int类型转换为包装类的结果:"
- +integer4);
- //通过包装类的parseXxx()静态方法将字符串转换为基本数据类型
- int parseInt = Integer.parseInt(str);
- System.out.println("将字符串转换为基本类型的结果:"+parseInt);
- //通过包装类的toString()方法将包装类转换为字符串
- String string2 = integer.toString();
- System.out.println("将包装类装换为字符串的结果:"+string2);
- }
-
- }
运行结果:
注:
①除了Chareter外,包装类都有valueOf(String s)方法,可以根据Sring类型的参数创建包装类对象,但参数字符串s不能为null, 而且字符串必须是可以解析为相应基本类型的数据.否则虽然编译通过,但运行时会报错。具体示例如下:
- Integer i = Integer.valueOf("123");//合法
- Integer i = Integer.valueOf("12a");//不合法
②除了Character外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型的数据。参数s不能为null,而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。具体示例如下:
- int i = Integer.parseInt("123");//合法
- Integet in = Integet.parseInt("itcast");//不合法
感谢观看!!!