一、包装类
1、概述
Java 提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:
包装类的特点
(1)所有包装类都是final类型,因此不能创建他们的子类。
(2)包装类是不可变类,一个包装类的对象自创建后,他所包含的基本类型数据就不能被改变。
java中的装箱 拆箱
装箱就是 自动将基本数据类型转换为包装器类型;
拆箱就是 自动将包装器类型转换为基本数据类型 ;
Integer i =5;//装箱
int j=i;//拆箱
在装箱的时候自动调用的是Integer的valueOf(int)方法。
而在拆箱的时候自动调用的是Integer的intValue方法。
另外要获得Integer对象,可以直接new 获得 例:
Integer i = new Integer(6);
Stirng str = "6";
Integer j = new Integer(str);
字符串 转为 数值
- int n =Integer.parseInt(str);
- int n = Integer.valueOf(str1).intValue();
对于第二种方式 是先获得Integer 对象 在利用方法 Integer .intValue() 获得 基本数据类型 int数值 转为 字符串
- String str =String.valueOf(n);
- String str= Integer.toString(i);
- String str =""+i;
这两种转换适用于 int double float long
获取对象 XXX.valueOf(str/i) // XXX:对象的类型名称
获取基本数据类型 YYY.parseyyy(str) //YYY:包装类名称 yyy:对应基本数据类型
三 基本数据类型和字符串的转换
String类中内置的方法很多,所以会有时候我们会选择将基本数据类型转换为字符串然后使用内置的方法 那么这里我们也分为两个方面:
一.基本类型转换为字符串 基本类型转换为字符串的方法有三种方法:
1.使用包装类中的toString()方法
2.使用String类的valueOf()方法
3.加入空字符
String i = Integer.toString(h);//使用包装类中的toString()方法
String i = String.valueOf(h);//使用String类的valueOf()方法
String i = h + "";//加入空字符123
int h = 10;
String a = Integer.toString(h);//使用包装类中的toString()方法
String b = String.valueOf(h);//使用String类的valueOf()方法
String c = h + "";//加入空字符123
System.out.println(a);
System.out.println(b);
System.out.println(c);
2)字符串转换为基本类型 包装类转换为基本类型有两种方法:
1 使用包装类中的parseXXX()方法
除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:
public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。
public static short parseShort(String s):将字符串参数转换为对应的short基本类型。
public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。
public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。
public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
②使用包装类中的valueOf()方法
int j = Integer.parseInt(i);//使用包装类中的parseXXX()方法
int j = Integer.valueOf(i);//使用包装类中的valueOf()方法
注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出lawanang.NumberFormatException.异常。