包装类(Wrapper)

包装类——是针对8种基本数据类型的相对应引用类型

后面的六个的父类是Number;前两个的父类是Object

包装类(Wrapper)_第1张图片

 包装类(Wrapper)_第2张图片包装类(Wrapper)_第3张图片

包装类(Wrapper)_第4张图片

 自动拆箱、装箱(示例代码的最后部分注意易错的类型上转)

public static void main(String[] args) {
        //jdk5之前,手动装箱和拆箱
        Integer a = new Integer(1);
        Integer b = Integer.valueOf(2);
        int n1 = a.intValue();

        //jdk5之后,自动装箱和拆箱
        Integer i1 = 3;//底层还是执行的Integer.valueOf()
        int n2 = b;//底层还是执行的是intValue()

        //默认不加f是double类型,包装器类型一定要标清楚,而基本类型可以写整数是因为会发生类型转换
        double d1 = 1;
        float f1 = 2;
        Double d = 1d;
        Float f = 2.0f;

        Object obj = true?new Integer(1):new Double(2.0);
        System.out.println(obj);//1.0,三元运算符是一个整体,int会向double转换
    }

“==”的判别:

(1)只要是new了一个对象,两个地址就是不同的

(2)如果不是new的,就要看要比较的数是否在-128~127(包含等于)之间,如果在就按照数值比较,如果不在就是不相等的

底层使用的方法依然是valueOf(),如果在范围之间就从数组中取,否则就会new一个新的对象,源码如下:

包装类(Wrapper)_第5张图片

 

例如:

 包装类(Wrapper)_第6张图片

只要比较的双方有一个是基本数据类型就按照上面的规则比较 

包装类(Wrapper)_第7张图片

 常用方法:

包装类(Wrapper)_第8张图片

包装类和string类型的相互转换:

public static void main(String[] args) {
        //包装类——>String
        Integer i = 10;
        //方法1
        String s1 = i+"";
        //方法2
        String s2 = String.valueOf(i);
        //方法3
        String s3 = i.toString();

        //String——>包装类
        //方法1
        Integer i1 = Integer.parseInt(s1);
        //方法2
        Integer i2 = new Integer(s2);

    }

 

 

你可能感兴趣的:(Java入门,java)