基本数据类型、包装类、String 之间的相互转换

 

基本数据类型转换为包装类

     int num1 = 10;
        Integer num = new Integer(num1);
        System.out.println(num.toString());
        
        String s = "123";
        Integer s1 = new Integer(s);
        System.out.println(s.toString());

 

包装类(Wrapper)转换为基本数据类型(Primitive)。

Integer in1 = new Integer(12);
        int i = in1.intValue();

 

自动装箱与自动拆箱。

自动装箱(其实就是多态)

        int num1 = 10;
        Integer in1 = num1;

        boolean b1 = true;
        Boolean b2 = b1;

自动拆箱:

        int num1 = 10;//基本数据类型
        Integer in1 = num1;//自动装箱
        int num2 = in1;//自动拆箱
 

基本数据类型,包装类转化成String 类型,使用String类的valueOf方法。

        //基本数据类型、包装类---> String 类
        int num1 = 10;
        //方式 一:连接运算
        String str1 = num1 + "";

        //方式二:调用String的valueOf方法
        float f1 = 12.3f;
        String str2  = String.valueOf(f1);

        Double d1 = new Double(13.42);
        String str3 = String.valueOf(d1);

String 转化为基本数据类型,使用包装类的parseOf()方法

        String str4 = "12.34";
        Double d2 = Double.parseDouble(str4);
        String str4 = "12.34";
        double d2 = Double.parseDouble(str4);

 

Integer包装类内部定义了一个Integer cache的内部类,该类定义了一个保存了-128~127的数组,所以在程序中使用这个范围内的整数的时候,指向的其实是同一个数组。

 自动拆箱,装箱的练习。

 如何实现向下转型,需要注意什么问题,如何解决此问题。

Person p = New Man()

使用强转符()

Man m = (Man) p;

可能出现classCastException

强转前使用instanceOf进行判断

if(p instanceOf Man){

  Man m = (Man) p;

}

posted @ 2021-10-20 20:58  donkey8  阅读(52)  评论(0)    收藏  举报