包装类

1、包装类数据类型以及继承关系

包装类就是对基本数据类型的一个扩展。基本数据类型不可称为对象,包装类型是对象。

boolean -> Boolean
char -> Character

//以下都是number的子类
byte -> Byte
int -> Integer
long -> Long
float -> Float
double -> Double
short -> Short

 Character

Boolean

 Byte、Integer、Long、Float、Double、Short

2、自动拆箱和装箱

这里很多地方之所以不报错是因为:有了类的特点就可以调用类的方法。

//jdk4前使用的是手动装箱拆箱
        int n1 = 100;
        //装箱:
        Integer integer = new Integer(n1);
        Integer integer1 = Integer.valueOf(n1);
        //拆箱:
        n1 = integer1; //这里对象怎么可能会赋给一个基本数据类型呢?答案是:有了类的特点就可以调用类的方法。
        int intValue = integer.intValue();

        //jdk5后底层实现了自动拆箱和装箱
        int n2 = 100;
        //装箱:
        /*public static Integer valueOf(int i) {
            if (i >= Integer.IntegerCache.low && i <= Integer.IntegerCache.high)
                return Integer.IntegerCache.cache[i + (-Integer.IntegerCache.low)];
            return new Integer(i);
        }*/
        Integer in1 = n2; //底层还是用的 Integer.valueOf() 方法来实现的

        //拆箱
        /* public Integer(int value) {
                this.value = value;
            }*/
        n2 = new Integer(10);  //底层是integer.intValue()方法实现的拆箱

 常用方法

包装类转String类型

 

 (底层源码引出)

 

posted @ 2022-09-02 14:29  张栈  阅读(27)  评论(0)    收藏  举报