为什么要有包装类,顺便说一说基本数据类型、包装类、String类

2022-11-04  本文已影响0人  分布式与微服务

一、前言

基本数据类型 包装类
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean

其中CharacterBoolean的父类是Object,其余的父类是Number


二、装箱和拆箱

    public void test1() {
        Integer a = 10;
        //等价于 Integer a = Integer.valueOf(10);
    }
    public void test1() {
        int a = new Integer(10);
        //等价于int a = new Integer(10).intValue();
    }

三、空指针异常

既然知道了装箱和拆箱,那么下面的代码,我们就可以很明白的分析出来为什么会报空指针的异常了:

    public void test1() {
        Integer a = null;
        int b = a;
    }

四、转换的使用

前面已经讲解了基本数据类型以及包装类之间的相互转换,即自动装箱和拆箱;下面看看基本数据类型与String类之间的转换、String类与包装类之间的转换。

1、基本数据类型与String类之间的转换

    public void test1() {
        int a = 3;
        String s = String.valueOf(a);
        System.out.println(s.getClass());
        //class java.lang.String
    }
    public void test2() {
        String s = "12";
        int a = Integer.parseInt(s);
    }

2、String类与包装类之间的转换

    public void test3() {
        String s = "12";
        Integer a = new Integer(s);
        System.out.println(a.getClass());
        //class java.lang.Integer
    }

    public void test4() {
        Integer a = new Integer(12);
        String s = a.toString();
        String s1 = Integer.toString(a);
        System.out.println(s.getClass());
        System.out.println(s1.getClass());
        //class java.lang.String
    }
复制代码

五、经典面试题

试着写一写,看看自己会不会:

    @Test
    public void test5() {
        Integer i = new Integer(1);
        Integer j = new Integer(1);
        System.out.println(i == j);
        Integer m = 1;
        Integer n = 1;
        System.out.println(m == n);
        Integer x = 128;
        Integer y = 128;
        System.out.println(x == y);
    }
复制代码

输出结果:falsetruefalse


六、总结

用一张图片来收尾~
上一篇 下一篇

猜你喜欢

热点阅读