Java中基本数据类型的自动拆箱和装箱

 我们知道在Java中所有的都是类,我们创建一个类的实例的时候,需要使用关键字new。在Java中给我们提供了基本数据类型的包装类,我们要创建一个基本数据类型的时候我们按照Java默认的语法,需要使用new关键字来创建一个对象。在Java1.4之前对于基本数据类型的包装类只能使用new关键字,但是在Java1.5及以后就给我们提供了一种机制,可以不适用new关键字。
   在Java中对于基本数据类型包装类,我们可以直接使用基本数据来赋值,下面我们看一个例子程序:
   
   在程序中我们直接对i1赋值,没有报错,在后面输出显示的结果也是5,也没有错误。这就证明在Java中,Java虚拟机直接根据我们运行的实际环境给我们将数据类型进行了转换(这里的转换是指在类和基本数据类型之间的转换)。有了上面的例子我们想第11行输出的是true,然后14行输出的也是true。但是最后的结果却是如下:
   5
   true     
   false
   这里读者可能就不明白了,这里我们解释一下这样结果的原因。在Java中对于从-127到128之间的数,因为数据比较小,而且使用的比较频繁,在内存中就保存一份,它们都指向的是同一份,对于其他的数据就分别保存了。说道这里读者应该就清楚了,这里使用了设计模式的享元模式,有兴趣的读者可以自己搜搜。
   感觉语言组织的不好,希望读者能够看懂。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值