基本类型还是对象类型

     使用对象类型让我们感觉更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个对象。

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


你可能感兴趣的:(基本类型还是对象类型)