1:包装类型可以为 null,而基本类型不可以
答:所以数据库模型,字段定义用包装类型可以避免Null值抛出 NullPointerException 的异常。但是......(参考第5点效率说明)
2:包装类型可用于泛型,基本类型不可以
例:
错误:List<int> list = new ArrayList<>(); // 提示 Syntax error, insert "Dimensions" to complete ReferenceType
正确:List<Integer> list = new ArrayList<>();
3:两个包装类型的值可以相等,但缺不相等
4:自动装箱和自动拆箱
答3、4:https://blog.csdn.net/qing_gee/article/details/101670051
5:效率说明
例:sum 由于被声明成了包装类型 Long 而不是基本类型 long,所以 sum += i 进行了大量的拆装箱操作(sum 先拆箱和 i 相加,然后再装箱赋值给 sum),导致这段代码运行完花费的时间足足有 2986 毫秒;如果把 sum 换成基本类型 long,时间就仅有 554 毫秒,完全不一个等量级啊。