int和Integer的区别
- Integer是int的包装类,int则是Java的一种基本数据类型;
- Integer变量必须实例化后才能使用,而int变量不需要;
- Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而int则是直接存储数据值;
- Integer 的默认值是null,而int的默认值是0;
- 两个new的Integer永远不相等,因为其内存地址不同;
- 当Integer与int进行比较时,只要两个变量的值是相等的,结果就为true,因为进行比较时Integer会拆包装成int,然后在进行比较;
- 非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。
- 对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false;