java学习笔记52--包装类

在java中,有八种基本的数据类,这八种类型所表示的数据只是一些简单的数值(8/16/32/64位的数字),它们都不是对象,所以在API又针对这八种类型提供了对于的类类型,也就是包装类型,它们分别是:
    Primitive-Type   Wrapper-Class
        byte                       Byte
        short                      Short
        int                          Integer
        long                       Long
        float                       Float
        double                   Double
        boolean                 Boolean
        char                       Character
    
    1)这些对应的包装类型都是java.lang下的类
        在代码中可以直接使用而不需要导入.
    
    2)每种包装类中都定义属性和方法供其对象使用
        这是从基本类型变为包装类型最明显的区别,现在指向的是对象了,可以访问对象中的属性和调用对象中的方法了,之前只是一个简单的数值,没有任何属性和方法。
        例如:
            //使用变量i不能访问任何属性和访问
            //因为变量i没有指向对象,也不能指向对象
            int i = 1;
            
            //查看API可知Integer类中的构造器如果使用
            //使用变量i可以访问Integer类中定义的属性和方法
            //因为变量i指向的是对象,这是一个引用类型的变量
            Integer i = new Integer(1);
            或者
            Integer i = new Integer("1");

            注:包装类中的属性和方法大都是静态的,可以使用类名直接访问。(也有非静态的方法,就需要使用对象调用了)
        
        例如:
            main:
                System.out.println(Integer.MAX_VALUE);
                System.out.println(Integer.MIN_VALUE);
                System.out.println(Integer.toBinaryString(100));

    3)JDK1.5增加了自动拆箱装箱的功能(低版本JDK中编译报错)
        注:针对八种基本类型及其包装类型,这里以int和Integer为例

        //自动装箱,把字面值1包装成Integer类型对象
        Integer i1 = 1;
        
        //自动拆箱,把Integer对象转变为一个简单的int类型值
        int i2 = new Integer(1);

        注:
            //编译通过
            Integer a = 1;

            //编译报错
            //1可以自动装箱为Integer类型对象
            //但是Integer和Long没有任何关系
            Long b = 1;
            
            //因为int是32位 long是64位
            int --可以自动转换为--> long
            
            //但是Integer和Long没有子父类关系
            Integer --不能转换为--> Long

猜你喜欢

转载自blog.csdn.net/onepiece_loves/article/details/88694581