有了基本数据类型,为什么还要引用类型?

有了基本数据类型,为什么还要引用类型?(本人学习总结)


	Java有八大基本数据类型(byte,short,int,long,float,double,char,boolean)
	然而Java还提供另一种数据类型:引用类型即封装类型(Byte,Short,Integer,Long,Float,Double,Character,Boolean)
	比如Integer为int的封装类,所以Interger不是基本数据类型而是类。

那为什么还要引用类型?

  1. 它封装了数据和处理该数据的方法,比如Integer.parseInt(String)就是将String字符类型数据转换为Integer整型数据。
  2. Java中大部分类和方法都是针对类类型对象的,比如ArrayList集合类就只能以类作为它的存储对象,如果要储存int型数据就要将其包装成一个类即Integer,然后才能存入list。
  3. 引用类型在堆里,基本类型在栈里。
    栈空间小且连续,往往会被放在缓存。引用类型cache miss(缓存未命中)率高且要多一次解引用。对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高
    逻辑上来讲,java只有包装类就够了,为了运行速度,需要用到基本数据类型。实际上,任何一门语言设计之初,都会优先考虑运行效率的问题,所以二者同时存在是合乎情理的。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值