Java 优先使用基本类型而非装箱基本类型

Java中存在两种类型的数据,1、基本数据类型(primitive type),包含八种:byte,char,boolean,short,int,long,float,double  它们所对应的包装类型分别为:Byte , Character , Boolean , Short , Integer , Long , Floag , Double 

2、引用类型  (reference type )  例如: String ,  HashMap 等一系列。

Java1.5 及 Java1.5 以上的版本都提供了自动拆箱和自动装箱的功能,例如:

   Integer i=10 ;   //自动装箱

   int i = new Integer(10); //自动拆箱

  

至于为何要优先使用基本类型(primitive type ) ,看如下代码:

方法1 . 使用包装类型 Long 

		long beginTimeMillis=System.currentTimeMillis();
		Long sum=0l;  //包装类型
		for(long i=0l;i<100000000;i++){
			sum+=i;
		}
		Long endTimeMillis=System.currentTimeMillis();
		System.out.println(sum);
		System.out.println(endTimeMillis-beginTimeMillis);

 所需要的时间大致为1313ms ,不同的机器不一样,这里只是大概。

方法2. 使用基本类型 long 

		long beginTimeMillis=System.currentTimeMillis();
		//基本类型
		long sum=0l;
		for(long i=0l;i<100000000;i++){
			sum+=i;
		}
		long endTimeMillis=System.currentTimeMillis();
		System.out.println(sum);
		System.out.println(endTimeMillis-beginTimeMillis);
所需要的时间仅仅只要 328ms,比使用装箱类型Long快了4倍以上,如果数据量越多、那么使用基本类型的效率就越明显。

至于为什么会出现这种情况,这是因为Java1.5及Java1.5以上的版本提供了自动拆箱、装箱的功能。方法1因为反复的自动拆箱、装箱、消耗了性能。

在基本类型和装箱类型之间如何选择,只需牢记:尽量避免反复的自动拆箱、装箱。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值