基本数据类型包括byte,short,int,long,float,double,char,boolean。其对于包装类如下图:
包装类的引入是为了解决基本数据类型无法作为对象使用方法的问题。有了包装类,我们就可以使用针对基本数据类型的方法。比如常用的string类型与int类型值的转换等。
那么问题来了,怎么实现基本数据类型的方法调用呢?这里引入两个重要概念:装箱和拆箱。
- 装箱:把基本类型转换为包装类,使其具有对象性质,又可分为手动装箱和自动装箱。
int i = 1; //定义一个int的基本类型
Integer j = new Integer(i); //手动装箱
Integer z = i; //自动装箱(jdk1.5之后开始支持)
这里需要说明的是Integer j = new Integer(i)是包装类Integer的构造方法,Integer有两个构造方法,一个是针对int,一个是针对string,如下图:
- 拆箱:和装箱相反,拆箱是把包装类对象转化为基本类型的值,又可分为手动拆箱和自动拆箱。
Integer j = new Integer(8); //定义一个Integer包装类对象,值为8
int a = j.intValue; //手动拆箱为int类型
int a=j; //自动拆箱为int类型(jdk1.5之后开始支持)
所以经过上述,在实际编程中,对int和Integer对象的相互转换,直接使用=即可(自动装拆箱)
- 基本类与字符串的转换
基本类转化为字符串有三种方法:
//将基本类型转化为字符串
int a = 1;
String str1 = Integer.toString(a); //方法1,使用对应包装类的toString方法
String str2 = String.valueOf(a); //方法2,使用字符串的valueOf方法
String str3 = a + ""; //方法3,基本类型加上空字符串得到字符串类型(这个方法不太常见,但是很方便)
字符串转化为基本类型有二种方法:
//将字符串转化为基本类型
String str = 1;
int a = Integer.parseInt(str); //方法1,
int b = Integer.valueOf(str); //方法2
总结:
实际编程中字符串与基本类型的转换使用valueOf即可,因为两边相互转换都是这一个方法,比较容易记忆