基本类型还是对象类型

     使用对象类型让我们感觉更OO,更方便,但是在有些场景是不可以使用的。

    

package com.design.autoboxing;


public enum AutoBoxing {
	Instance;

	public static void main(String[] args){
		AutoBoxing boxing = AutoBoxing.Instance;
		long startTime = System.currentTimeMillis();
		boxing.autoBoxing();
		long endAutoBoxingTime = System.currentTimeMillis();
		System.out.println("Auto time is:" + ((endAutoBoxingTime - startTime)));
		
		boxing.notAutoBoxing();
		long endNotAutoBoxingTime = System.currentTimeMillis();
		System.out.println("Not Auto time is:" + ((endNotAutoBoxingTime - endAutoBoxingTime)));
	}
	
	public void autoBoxing(){
		Long sum = 0L;
		for(Long i = 0L;i < Integer.MAX_VALUE;i ++){
			sum += i;
		}
		System.out.println(sum);
	}
	
	public void notAutoBoxing(){
		long sum = 0L;
		for(long i = 0;i < Integer.MAX_VALUE;i ++){
			sum += i;
		}
		System.out.println(sum);
	}
}

结果:

2305843005992468481

Auto time is:16699

2305843005992468481

Not Auto time is:1332


     最终的结果是一致的,但是性能差了很多倍,因为在使用对象类型时,每次循环都需要创建一个对象类型,这也就导致需要创建Integer.MAXVALUE个对象。

      对象类型有其自身的好处,同时带来的开销也不是很大;一般不需要考虑,但如果我们开发的是对性能要求极致的模块,这些还是需要考虑的。


转载于:https://my.oschina.net/u/1038535/blog/183818

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值