全,Integer和int的区别。精简总结

Integer是包装数据类型,而int是其对应的基本类型,同时也是八大基本类型中的一个 。

  • 其中,Integer和int会涉及一个拆装箱,Integer到int会进行一个拆箱,int到Integer会进行一个装箱,得益于JDK5引入的自动拆装箱语法糖,而无需手动操作。

  • 集合并不能存储诸于int的基本类型,只能存放Integer的包装类型,而由于拆/装箱看起来无异。

  1. 在使用上,int可以直接定义赋值、但Integer需要使用new关键字来创建对象。

  2. 在默认值上,因为Integer是一个对象,Integer的默认值为null、而int的默认值为0。

  3. 在内存上,Integer由于是一个对象,所以 存储在堆内存,int 类型是直接存储在栈空间。

  4. 在性能上,由于Integer包装了其他功能,性能要低于int。

  5. 在遍历上,由于Integer是对象,提供了更多的方法和工具类,便于操作。

  6. 在缓存上,在Integer中 -128到127之内值会被缓存起来,其中使用到了一个享元设计模式,int并没有缓存。

为什么要设计包装类型

首先java是一个面向对象的语言,为了体现一切皆对象的思想,而且对象还可以使用泛型来规范。

可以使用对象对象的一些特征,比如封装,安全性较好,可以对包装类型提供更多的操作方法。在集合中也只能支持对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值