Double和double的区别

本文详细介绍了Java中Double和double的区别,包括它们的数据类型、内存存储位置、使用效率及在集合类中的处理方式。double是原始数据类型,存放在栈中,而Double作为Object的子类,存放在堆中。对于效率考虑,double更优,但Double提供了额外的方法,增加了灵活性。注意,Double在特定范围内利用了常量池技术,但浮点数类型并未全面实现。
摘要由CSDN通过智能技术生成

Double和double的区别

  1. double是基本数据类型,不是一个类;Double是原始数据类型,是一个类,Object的一个子类
  2. double没有方法,Double有自己的属性和方法
  3. double只创建引用,Double创建对象
  4. 集合类不能存放double,只能存放Double
  5. 两者存放位置不同:
  • double存放在栈中
    栈的存取速度要高于堆,另外栈中的数据可以共享,不会创建对象,只会建立两个引用,同时指向变量“0”(栈数据共享)
    如:
double a = 0;
double b = 0;
//两个值是同一个栈中的 0,栈中没有两个0
  • Double存放在堆中
    会创建两个对象,即使对象所代表的值一样(堆数据不共享)
    但是,Java中基本类型的包装类大都实现了常量池技术,即Byte,Short,Integer,Long,Character,Boolean。这5种包装类默认创建了数值[-128,127]的相应类型的缓存数据,但是超出此范围仍然会去创建新的对象。 两种浮点数类型的包装类Float、Double并没有实现常量池技术。
    如:
Double a = new Double(0);
Double b = new Double(0);
//两个引用指向同一个对象,但如果超出[-128,127]这个范围,则每一个new都将创建新的对象

总结:
所以从效率来讲用double合适,而Double提供的属性和方法会使操作各种操作更加方便和灵活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值