今天看到项目中很多地方用Integer 比较,觉得有不妥之处,先记录下。
java中Integer类型对于-128-127之间的数是缓冲区取的,所以用等号比较是一致的。但对于不在这区间的数字是在堆中new出来的。所以地址空间不一样,也就不相等。
所以,以后碰到Integer比较值是否相等需要用intValue()
Double没有缓冲区。
今天看到项目中很多地方用Integer 比较,觉得有不妥之处,先记录下。
java中Integer类型对于-128-127之间的数是缓冲区取的,所以用等号比较是一致的。但对于不在这区间的数字是在堆中new出来的。所以地址空间不一样,也就不相等。
所以,以后碰到Integer比较值是否相等需要用intValue()
Double没有缓冲区。