java常用类-包装类

一、包装类

  • 基本数据类型所对应的引用数据类型(基本数据类型是存放在栈中的,引用数据类型时存放在堆中的)
  • Object可统一所有数据,包装类的默认值时null。
    包装类对应的基本类型
    基本数据类型 包装类型
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    boolean Boolean
    char Character

二、类型转换与拆箱装箱

  • 8种包装提供不同类型间的转换方式:
    • Number父类中提供6个共性方法。

               Byte、Short、Integer、Long、Float、Double。

public class Demo01 {
    public static void main(String[] args) {

        //类型转换:装箱,基本类型转换为引用类型的过程
        //基本类型
        int num1 = 10;
        //使用Integer类创建类型转换
        Integer integer1 = new Integer(num1);
        Integer integer2 = Integer.valueOf(num1);
        System.out.println(integer1);
        System.out.println(integer2);

        System.out.println("============================");
        //类型转换:拆箱,引用类型转成基本类型。
        Integer integer3 = new Integer(100);
        int num3 = integer3.intValue();
        System.out.println(integer3);
        System.out.println(num3);

        System.out.println("============================");
        //JDK1.5之后,开始提供自动装箱和拆箱。
        int age=100;
        Integer integer4 = age;
        int age2 = integer4;
        System.out.println(integer4);
        System.out.println(age2);

    }
}
    • parseXXX()静态方法。
System.out.println("==============字符串型转换为基本类型==============");
//字符串型转换为基本类型
String str = "150";
//使用Integer.parseXXX();
int i = Integer.parseInt(str);
System.out.println(i);
ouble v = Double.parseDouble(str);
System.out.println(v);
    
System.out.println("==============boolean字符串形式转换为基本类型==============");
//boolean字符串形式转换为基本类型,"true"--->true   非"true"--->false
String str2 = "true";
boolean b = Boolean.parseBoolean(str2);
System.out.println(b);
    • valueOf()静态方法。
  • 注意:需要保证类型兼容,否则抛出NumberFormatException异常。

三、整数缓冲区

  • Java预先创建了256个常用的整数包装类型对象。
  • 在实际应用当中,对已创建的对象进行复用。
public class Demo02 {
    public static void main(String[] args) {
        //面试题
        Integer integer1 = new Integer(100);
        Integer integer2 = new Integer(100);
        System.out.println(integer1==integer2);//false(地址不同)

        Integer integer3 = Integer.valueOf(100);
        Integer integer4 = Integer.valueOf(100);
        System.out.println(integer3==integer4);//true(因为Java运行会预先生成-127-128的数据,如果数据大小在这之内则直接从这里面调用,否则再生成。)

        Integer integer5 = Integer.valueOf(200);
        Integer integer6 = Integer.valueOf(200);
        System.out.println(integer5 == integer6);//false(同上)

    }

}

猜你喜欢

转载自blog.csdn.net/Mr_yao0/article/details/121056787