包装类&&基本类型和字符串的相互转换

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

知识点回忆:ArrayList里的泛型要求只能是引用类型,不能是基本类型。因此需要对基本类型进行自动装箱操作,转换为包装类。

包装类:可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类。

可以使用类中的方法来操作这些基本类型的数据。

基本类型 对应的包装类(位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

基本类型与对应的包装类对象之间,来汇转换的过程称为”装箱“和”拆箱“:

装箱:从基本类型转换为对应的包装类对象

拆箱:从包装类对象转换为对应的基本类型。

我们以int和Integer举例:

装箱:

构造方法:Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。

                  Integer(String s)构造一个新的Integer对象,它表示String参数所指示的int值。(这个字符串,必须是基本类型的字符串,否则会抛出异常

静态方法:static Integer valueOf(int i)返回一个表示指定的int值的Integer实例

                  static Integer valueOf(String s)返回保存指定的String的值的Integer对象

拆箱:

成员方法:int intValue()以int类型返回该Integer的值。

public static void main(String[] args) {
    //装箱:从基本类型转换为对应的包装类对象。
    //构造方法:Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。
    Integer integer1 = new Integer(1);// 方法被标记,已过时
    System.out.println(integer1); //1 打印对象不是地址值,重写了toString()方法

    //Integer(String s)构造一个新的Integer对象
    Integer integer2 = new Integer("222");
    System.out.println(integer2);//222

    //静态方法:static Integer valueOf(int i)返回一个表示指定的int值的Integer实例。
    Integer integer3 = Integer.valueOf(3); // 静态方法,类名直接调用
    System.out.println(integer3);//3

    //static Integer valueOf(String s)返回保存指定的String的值的Integer对象。
    Integer integer4 = Integer.valueOf("222"); // 静态方法,类名直接调用
    System.out.println(integer4); // 222

    // 拆箱
    // 成员方法:int intValue()以int类型返回该Integer的值。
    int i = integer1.intValue();
    System.out.println(i); //1
}

自动装箱与自动拆箱

由于经常需要做基本类型与包装类之间的转换,从JDK 1.5+开始,基本类型与包装类的装箱、拆行动作可以自动完成。

private static void demo01(){
    // 自动装箱int-->Integer
    // 相当于Integer integer = new Integer(1)
    Integer integer = 1;
    System.out.println(integer);

    //自动拆箱Integer-->int
    // in是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算
    // Integer + int = Integer
    // --> int + int = Integer自动拆箱,相当于Integer.intValue() + int
    //--> int = Integer
    //-->Integer = Integer自动装箱
    integer = integer + 2;
    System.out.println(integer);
}

基本类型与字符串之间的转换

1.基本类型转换为String

基本类型转换为String总共有三种方式:

A.基本类型直接与""相连接即可,如34+""

B.包装类的静态方法toString(参数),不是Object类的toString()重载的关系。

static String toString(int i)返回一个指定整数的String对象。

C.String类的静态方法valueOf(参数)

static String valueOf(int i)返回int参数的字符串表示形式。

// 基本类型转换为字符串
// 1.基本类型的值+""
String str1 = 23 + "";
System.out.println("str1:"+str1); // 23
// 2.包装类的静态方法toString(参数)
String str2 = Integer.toString(3);
System.out.println("str2:"+str2); // 3
// 3.String类的静态方法valueOf(参数)
String str3 = String.valueOf(23);
System.out.println("str3:"+str3); // 23

2.String类型转换为基本类型

除了Charater类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

如:public static byte parseByte(String s) :将字符串参数转换为对应的基本类型。

//字符串转换为基本类型
int num1 = Integer.valueOf("222");
float num2 = Float.valueOf("22.3");

猜你喜欢

转载自blog.csdn.net/wardo_l/article/details/113919279