装箱和拆箱笔记

基本类型包装类的概述

常见对象
A:为什么会有基本类型包装类
    * 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。
B:常用操作
    * 常用的操作之一:用于基本数据类型与字符串之间的转换。

    *或者进行进制的转换

    *基本类型的值会变成基本类型包装类的属性值
C:基本类型和包装类的对应

        byte             Byte
        short            Short
        int                Integer
        long            Long
        float            Float
        double            Double
        char            Character
        boolean            Boolean

注意:只有 int                Integer和char            Character需要增加字母,其他的都是首字母变成大写即可
D.最好的了解方法是查看api

举例论证:

Integer类的概述和构造方法
* A:Integer类概述
    * 通过JDK提供的API,查看Integer类的说明

    * Integer 类在对象中包装了一个基本类型 int 的值,
    * 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,
    * 还提供了处理 int 类型时非常有用的其他一些常量和方法,如MAX_VALUE等
* B:构造方法
    * public Integer(int value)
    * public Integer(String s)

使用构造方法创建对象可通过api查阅

String和int类型的相互转换

* A:int -- String
    * a:和""进行拼接
    * b:public static String valueOf(int i)
    * c:int -- Integer -- String(Integer类的toString方法())
    * d:public static String toString(int i)(Integer类的静态方法)

//int 转换成 String
		int i = 100;
		String s1 = ""+i;//1
		String string=String.valueOf(i);//2
		
		Integer integer = new Integer(i);
		String s3=integer.toString();
		
		String s4 = Integer.toString(i);
		System.out.println(string);
        System.out.println(s1);


* B:String -- int
    * a:String -- Integer -- int
    * public static int parseInt(String s)

基本数据类型包装类除Character外,都有parseXX方法将字符串形式转换为基本数据类型

  //String转换为int
        String s5="200";
        Integer integer2 = new Integer(s5);//1
        int i4=integer2.intValue();
        System.out.println(i4);
        
        int i5=integer.parseInt(s5);//2推荐使用
        System.out.println(i5);

自动装箱和拆箱
* A:JDK5的新特性
    * 自动装箱:把基本类型转换为包装类类型
    * 自动拆箱:把包装类类型转换为基本类型 
    * Integer ii = 100;
    * ii += 200;
* B:注意事项
    * 在使用时,Integer  x = null;代码就会出现NullPointerException。
    * 建议先判断是否为null,然后再使用。
 

int x = 100;
		Integer p = new Integer(x);//装箱,把基本数据类型包装为对象
		int y = p.intValue();      //拆箱,把对象转换为基本数据类型
		
		Integer integer = x;  //自动装箱,把基本数据类型转换为对象
		int i = integer+200;  //自动拆箱,把对象转换为基本数据类型
		System.out.println(i);
		
		Integer i5 = null;
		int z = i5+200;           //底层用i5调用intValue方法,但是i5是null,null调用方法
		System.out.println(z);    //会出现空指针异常

Integer的题目检测

        看程序写结果
        
        

Integer i1 = new Integer(97);
        Integer i2 = new Integer(97);
        System.out.println(i1 == i2);     //false
        System.out.println(i1.equals(i2));//true
        System.out.println("-----------");
    
        Integer i3 = new Integer(197);
        Integer i4 = new Integer(197);
        System.out.println(i3 == i4);      //false
        System.out.println(i3.equals(i4)); //true
        System.out.println("-----------");
    
        Integer i5 = 97;
        Integer i6 = 97;
        System.out.println(i5 == i6);     //true
        System.out.println(i5.equals(i6));//true
        System.out.println("-----------");
    
        Integer i7 = 197;                   
        Integer i8 = 197;
        System.out.println(i7 == i8);     //false
        System.out.println(i7.equals(i8));//true
        //-128到127是byte的取值范围,如果在这个范围内,自动装箱就不会新建对象,而是从常量池中获
        //取,如果超过了,就新建对象。

猜你喜欢

转载自blog.csdn.net/rngweskt/article/details/82793355