八大基本数据类型对应的包装类

  以我个人屈指可数的面试面试经历来看,当然我这里主要说的是Java开发相关岗位的面试,面试的内容对于int 和Integer的区别 这类问题讨论的比较多,下面我们就开展开说明一下这类问题吧。
int我们肯定都熟悉吧,是Java当中的一个基本数据类型,这跟C语言当中的int也一样,对于Integer呢,我们或多或少也知道一点,Integer是Java当中的包装类,说白了它就是一个类。
  我们首先来回顾以下Java当中的八大基本数据类型,也即byte、short、int、long、float、double、boolean、char,这八大基本数据类型都对应的有其包装类,下面以表格的形式来展现:

基本数据类型byteshortintlongfloatdoublebooleanchar
二进制位数81632643264116
包装类ByteShortIntegerLongFloatDoubleBooleanCharacter

  Java当中已经存在了八大基本数据类型,为什么还要准备其对应的八种包装类型(引用数据类型),很明显是少了不够用喽,我们可以来看看下面的例子:

public class Test{

    public static void main(String[] args) {
        //在这里调用doSome方法
    }
    public static  void doSome(Object obj){
        System.out.println(obj);
    }
}

  我们可以试想一下有没有这种需求呢,调用doSome()方法需要传进去一个数字,数字是数据基本数据类型的范畴,但是我们的方法参数需要的是一个类对象,也就是说需要一个引用数据类型。由此可见,给基本数据类型对应一个包装类是必要的。
  接着我们再来看看装箱和拆箱的概念,我们这里仅以int和Integer来举例。由于我们给int基本数据类型构造了一个包装类,我们也可以把这个包装类理解位一个封装器,把基本数据类型放进去的过程就叫做装箱,而把这个基本数据类型拿出来的过程就叫拆箱。很显然,在这个过程当中,我们使用基本数据类型就比较麻烦了。下面以代码的形式来展示一下这两个过程:

public class HelloWorld {

    public static void main(String[] args) {
        //装箱
    Integer i = new Integer(100);
        //拆箱
    int j = Integer.valueOf(i);
    }
}

  其实int对应的包装类都提供了拆箱的方法,即便是这样,我们在使用的过程当中还是觉得麻烦,因此这个自动装箱自动拆箱的概念就应运而生(PS:实在是太人性化了)。不过需要注意的是,自动装箱和自动拆箱是在JDK1.5之后出现的新特性。我们还是以代码的形式来展现一下:

public class Test{

    public static void main(String[] args) {
        //自动装箱
    Integer i = 100;
        //自动拆箱
    int j = i;
    }
}


以上内容均为个人学习的一点心得,其中的知识点若有错误请留言提醒,若有侵权内容提醒马上删除。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值