java中类型系统有两部分组成基本类型如:int、double、boolean和引用类型如:String和List ,每个基本类型都有引用类型;
A.那他们的区别是什么呢?
1.基本类型有其初始值,装箱类型有基本类型值还有一个可以为null值;
2.在用“==”比较时,使用基本类型,使用装箱类型会导致值等,但对象不等的情况;
3.static Integer i; i=42; 会报空指针错误,原因是比较时Integer与int做比较,会进行自动拆箱,但是拆箱时如果是null就会报空指针异常,而如果Integer原先有值,则不会把异常;
4.进行运算时,用基本类型,慎用包装类型,因为包装类型进行自动拆箱和装箱会对效率降低;
B.什么时候用包装类型呢?
1.作为集合中的元素List<Integer>
2.参数化类型ThreadLocal<Integer>
3.进行反射的方法调用