基本数据类型:不支持面向对象的编程机制(没有属性和方法),即不支持面向对象,之所以提供8中基本数据类型,是为了方便常规数据的处理。
包装类:通过包装类可以将基本数据类型的值包装为引用数据类型的对象,使其具有面向对象的特征。
下面是8中基本数据类型及其对应的包装类:
基本类型 | 包装类 |
byte | Byte |
char | Character |
int | Integer |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
除了Integer和Character类外,其他对应的包装类的名称都与其基本数据类型一样,只不过首字母大写。
基本数据类型和字符串转换为包装类的方法:
public class TestDemo01 { public static void main(String[] args) { //首先定义两个变量 int num = 20; String str = "998"; //1.自动装箱可以将基本类型转换为包装类 Integer i = num; System.out.println("通过自动装箱的方法将int变量转换为包装类的结果:"+i); //2.通过包装类的valueOf()静态方法将基本类型和字符串转换为包装类 Integer i1 = Integer.valueOf(num); Integer i2 = Integer.valueOf(str); System.out.println("将int变量转换为包装类的结果:"+i1); System.out.println("将字符串变量转换为包装类的结果:"+i2); //3.通过包装类的有参构造方法将基本类型和字符串转换为包装类 Integer i3 = new Integer(num); Integer i4 = new Integer(str); System.out.println("通过构造器将int变量转换为包装类的结果:"+i3); System.out.println("通过构造器将字符串变量转换为包装类的结果:"+i4); } }
基本类型转换为字符串的方法:
public class TestDemo02 { public static void main(String[] args) { //首先定义变量 int i = 20; //1.通过String.valueOf()方法将基本类型转换为字符串 String str = String.valueOf(i); System.out.println("将基本类型转换为字符串的结果:"+str); //2.通过包装类的toString()方法将包装类转换为字符串 String str1 = Integer.toString(i); System.out.println(str1); //3.用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串 String str2 = i+""; System.out.println(str2); } }
字符串转换成基本类型的方法:
public class TestDemo03 { public static void main(String[] args) { String str = "998"; //1.通过包装类的parseXxx()静态方法将字符串转换为基本数据类型 int parseInt = Integer.parseInt(str); System.out.println(parseInt); //调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱 int i = Integer.valueOf(str); System.out.println(i); } }
包装类转换为基本数据类型和字符串的方法:
public class TestDemo04 { public static void main(String[] args) { int a = 20; String str = "998"; //先将它们转换为包装类 Integer b = a; Integer integer = Integer.valueOf(str); //1.自动拆箱,将包装类转换为基本数据类型 int c = b; System.out.println(c); //2.通过包装类的toString()方法将包装类转换为字符串 String str1 = Integer.toString(integer); } }
注意:除了Character外,包装类都有valueOf(String s)和parseXxx(String s)方法,其中参数 s 不能为null,而且字符串必须是可以解析为对应基本类型的数据,
否则编译通过,当运行会报错。
public class TestDemo05 { public static void main(String[] args) { Integer i = Integer.valueOf("123");//合法 Integer i1 = Integer.valueOf("12a");//不合法 int a = Integer.parseInt("123");//合法 Integer in = Integer.parseInt("itcast");//不合法 } }