一、Integer的比较存在的坑
1、Int是基本数据类型,默认是0。Integer是对象,默认是null。2、Int是基本数据类型,存在常量池。Ingeter对于-128到127之间的数,会进行缓存,Integer num = 127时,会将127进行缓存,超出直接new,用new的是在堆。所以-128到127之间的地址是相同的,都在同一个缓存数组中,超出时会new一个Integer,是一个新的对象了,地址指针不一样,==比较为false。所以,Integer用==比较时,要注意如果值不能确定在[-128,127]的缓存区间,不要使用==比较。
3、Integer继承了Number,它是一个对象,有equals()方法。要防equals类型不一致的问题。