7.基本类型的包装类

什么是包装类?

为了能快速使用基本类型的数据,提供了基本类型对应的类,这就是包装类. 包装类是个功能类,而不是将基本类型转成包装类。

怎么用?

通过类创建对象就能使用java提供的功能便捷的操作基本类型数据

byte short   char int long float double boolean void
Byte Short Charactor Integer Long Float Double Boolean Void

1.Void

    //void---没有返回值
    public void m() {}
    //Void 返回是一个类且只能是null
    public Void n() {return null;}

2.Integer

        //创建Integer对象
        //包装类对象由基本类型数据构建而来 ----封箱
        int i=5;
        Integer in=new Integer(i); 
        //基本类型数据直接赋值给包装类对象-----自动封箱 --JDK1.5的特性
        //底层是由包装类点valueof()把基本类型数据转成包装类对象
        //Integer.valueof(i);
        Integer in2=i;
        System.out.println(in); //5
        //创建一个包装类对象
        Integer in3=new Integer(232); 
        //包装类对象直接赋值给基本类型数据---自动拆箱 ----jdk1.5新特性
        //底层依赖包装类对象调用***Value()生成基本类型数据
        //in3.intValue()
        int j=in3;
        System.out.println(j); //232
    //Ingeter,short,byte,long 中-128--127一个共享范围,超出范围就每次返回一个新对象    
    //char是0--127  
        Integer in4=150;
        Integer in5=150;
        System.out.println(in4==in5); //false

整数类型有共享范围(-128,127),在这个范围内不同对象给定相同的基本类型值,返回的时同一个数组的元素,超过这个范围,每次返回的都是新对象

   Integer in7=10;
        int i1=10;
        System.out.println(i1+in7); //20

Integer(String s)

    Integer in=new Integer("3454"); //可以容忍+ -表示负数正数
    System.out.println(in);       //3454
    //Integer in1=new Integer("151i");//java.lang.NumberFormatException 数据格式错误
    //出现了只有true字样,可以忽略大小写,返回的才是true。其他全是false
    Boolean b=new Boolean("True");
    
    //类名.parseInt()---把其他类型转成包装类对象 采用构造方法太麻烦了 
    //其他类型都有parseInt(),除了Character,因为字符串已经提供了很多的方法了
    System.out.println(Integer.parseInt("123")); //123

包装类对象的hashCode值都是固定的

    //包装类的hashCode  哈希码值就是输入的整数 因为底层重写object hashCode然后输进去多少返回多少
    System.out.println(new Integer(12).hashCode());
    System.out.println(new Byte((byte)12).hashCode());
    System.out.println(new Character((char)12).hashCode());

 如果试图使用一个字符串来创建Boolean对象时,如果传入的字符串时true,或此字符串不同字母的大小写变化形式,都将创建true对应的Boolean对象;如果传入

其他的字符串,则会创建false对应的Boolean对象。

如果希望获得包装类对象中包装的基本类型变量,则可以使用包装类提供的xxxValue()实例方法。

//取出Boolean对象里的boolean对象
boolean bb=bObj.booleanValue();
//取出Integer对象里的int变量
int i=itObj.intValue();

原文地址:https://www.cnblogs.com/xuwangqi/p/11195042.html