一、int和Integer区别
int是基本数据类型,取值范围-2^31——2^31-1,和Integer相同,但在用法中就出现差别。
首先为了编程方便,引入了基本数据类型包括int在内8中,但又是因为java是面向对象编程的,有时会对基本数据类型的对象进行操作,所以就会引进一个包装类型的概念,即包装类,而int的包装类就是Integer。
public class IntegerTest {
public static void main(String[] args) {
Integer a1 = 110, a2 = 110, a3 = 140, a4 = 149;
System.out.println(a1 == a2);//true
System.out.println(a3 == a4);//false
/**因为机制原因(可以去看装箱的源码,会理解得更简单些),
*当Integer对象范围在-128-127之间时,
*是会直接调用类中对象,放在常量区,所以他们的对象和值都相同,
*而当不在该区域时,就会重新创建一个Integer对象,
*虽然f3和f4的值是想同的,但他们的对象是不相同的,
*所以就会打印出false
*/
Integer a = new Integer(3);
int b = 3;
Integer c = 3;
//a自动拆箱为 int 类型
System.out.println(a