常用API之包装类

1、什么是包装类

基本数据类型对应的对象,在集合以及某些不能直接使用基本数据类型的地方,便于表达基本数据类型。

2、JDK5以后对包装类新增加了什么性质

自动装箱、自动拆箱

因此我们也可以认为在JDK5以后包装类和基本数据类型的效果是相同的。

3、我们以后如何获取包装类对象

不需要调用new关键字,也不需要调用方法,直接赋值即可。

补充:

从-128到127使用Integer赋值找的是底层数组里的位置,地址值相同。

超出这个范围外的Integer赋值是创建一个新对象,地址不同

new关键字创建对象,地址不同

         //在实际开发中-128到127使用较多,底层以数组的方式创建好
        //如果每次都是用new来创建对象比较浪费内存
        //所以把这个数据范围内的每一个数据已经创建好了对象
        //如果使用不会创建新的,而是返回已经创建好了的对象

public static void main(String[] args) {
        //1利用构造方法获取Integer对象
        Integer i1=new Integer(1);
        Integer i2=new Integer(1);
        System.out.println(i1);
        System.out.println(i2);

        //2利用静态方法获取对象
        Integer i3=Integer.valueOf(123);
        Integer i4=Integer.valueOf(123);
        System.out.println(i3);
        System.out.println(i4);

        //这两种方式获取对象的区别

        //在实际开发中-128到127使用较多,底层以数组的方式创建好
        //如果每次都是用new来创建对象比较浪费内存
        //所以把这个数据范围内的每一个数据已经创建好了对象
        //如果使用不会创建新的,而是返回已经创建好了的对象
        Integer i6=Integer.valueOf(127);
        Integer i7=Integer.valueOf(127);
        System.out.println(i6==i7);

        Integer i8=Integer.valueOf(128);
        Integer i9=Integer.valueOf(128);
        System.out.println(i8==i9);

        //java中new关键字就创建新的对象,所以地址值不同
        Integer i0=new Integer(127);
        Integer i11=new Integer(127);
        System.out.println(i0==i11);
    }

4、JDK5以前的包装类该如何计算

public static void main(String[] args) {
        //在以前包装类如何计算
        Integer i1=Integer.valueOf(1);
        Integer i2=Integer.valueOf(2);

        //对象之间是不可以直接进行加减计算的
        //1、把对象拆箱,转换为基础数据类型
        //2、想加
        //3、装箱,转换为包装类
        int result=i1.intValue()+i2.intValue();
        Integer i3=new Integer(result);

        System.out.println(result);


    }

JDK5以后提出了自动拆箱和自动封箱的机制

public static void main(String[] args) {
        //JDK5的时候提出了一个机制,自动拆箱和封箱
        //自动装箱:把基础数据类型自动的变成其对应的包装类
        //自动拆箱:把包装类自动的变成其对应的基础数据类型

        Integer i1=10;

        Integer i2=new Integer(10);
        int i3=i2;

        //在JDK5之后int和integer可以看作一个东西,因为内部可以自动转化

    }

5、几种常见的进制以及类型转换方法

二进制 toBinaryString()

八进制 toOctalString()

十六进制 toHexString()

将str转化做某种基础数据类型Xxxxx.parseXxx(str)

public static void main(String[] args) {

        //1、把整数转换成为二进制
        String str1 = Integer.toBinaryString(100);
        System.out.println(str1);

        //8进制
        String str2 = Integer.toOctalString(100);
        System.out.println(str2);

        //16进制
        String str3 = Integer.toHexString(100);
        System.out.println(str3);

        //将字符串转化做int类型
        //强类型语言:每种数据在java有各自的数据类型
        //不是同一种数据类型无法进行计算

        //类型转换的时候字符串只能是数字,不可以有如字母之类的其他字符
        //8种包装类都有对应的,parsexxx方法将其转换为基础数据类型
        //xxx.parsexxx(str)
        int i=Integer.parseInt("123");
        System.out.println(i+1);
    }

6、对于Scanner的补充

 public static void main(String[] args) {
        //普通的nextXXX遇到空格的时候输入就会停止了,所以在以后的输入一般都使用nextLine比较好
        Scanner sc=new Scanner(System.in);
        String str= sc.nextLine();
        System.out.println(str);

        double d=Double.parseDouble(str);
        System.out.println(d);
    }

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