对于 Integer var = ? 在 -128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产生,会复用已有对象, 这个区间内的 Integer 值可以直接使用 == 进行判断, 但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑, 推荐使用 equals 方法进行判断。
NPE 问题:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE风险
By:阿里Java开发规范
对于 Integer var = ? 在 -128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产生,会复用已有对象, 这个区间内的 Integer 值可以直接使用 == 进行判断, 但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑, 推荐使用 equals 方法进行判断。
NPE 问题:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE风险
By:阿里Java开发规范