Java int 与 Integer 区别

版权声明:欢迎转载,注明出处QWQ https://blog.csdn.net/Mercury_Lc/article/details/85052420

学习借鉴(其实搬了别人的好多)和自己的理解,可能会有较多错误,如有疑问联系我呀。

  • int  是基本数据类型, Integer 是引用类型,也就是一个对象。
  • int 储存的是数值,Integer 储存的是引用的对象的地址。
  • int 占用内存少、Integer 对象占用内存多,因为它需要存储对象的元数据。
  • 不是用 new 生成的 Integer 变量与 new Integer ( ) 生成的变量不同,因为前者是在常量池中的,后者是在堆中的,两个的地址不同。
  • 两个不是 new 生成 Integer 对象比较,如果变量的值在 [ -128 , 127 ] 之间,比较结果为 true,否则是 false。
  • Integer 变量(无论是否 new 生成的)与 int 类型变量来比较,结果都是 true 。这因为要比较时, Integer都会自动拆箱成 int ,这样子比较就是在比较数值的大小了。

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Integer x = new Integer(10);
		Integer y = 10;
		Integer z = new Integer(10);
		int temp = 10;
		System.out.println(x == y);  //false
		System.out.println(x == z);  // false
		System.out.println(temp == x); // false
		System.out.println(temp == y); // false
	}

}

猜你喜欢

转载自blog.csdn.net/Mercury_Lc/article/details/85052420