JDK1.5新特性之自动装箱与自动拆箱

JDK1.5提供了很多新的特性,比如基础数据类型的自动拆箱与自动装箱,有了这写新特性,开发人员可以很方便的对数据进行操作。

我们通过一个例子来说明:

代码如下:

public class AutoBoxTest {

	
	public static void main(String[] args) {
		
		/*自动装箱【基本数据类型12,可以直接赋值给Integer类型】*/
		Integer num = 12;
		
		/*自动拆箱【Integer类型可以和一个基本类型数据相加】*/
		System.out.println(num + 1);

		
		/*num1会等于num2吗?*/
		Integer num1 = -128;
		Integer num2 = -128;
		System.out.println(num1 == num2);
		
		
		/*num3会等于num4吗?*/
		Integer num3 = 128;
		Integer num4 = 128;
		System.out.println(num3 == num4);
		
		/*num5会等于num6吗?*/
		Integer num5 = Integer.valueOf(128);
		Integer num6 = Integer.valueOf(128);
		System.out.println(num5 == num6);
		
		
	}

}

上述程序输出的结果是:

num1 == num2;

num3 != num4;

num5 != num6;


为什么会出现这样的结果呢?

原因是:系统会缓存一个字节内的数据即【-128~127】,因为这些数据使用很频繁,只需一个对象即可,所以每次取值都一样。而超过这个范围的数据系统将不进行缓存,导致了数据的对象不同。这也称为享元模式【所谓的享元模式通俗地讲就是使用频繁的数据我们用一个对象来代表,不必每次使用都重新创建一个对象】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值