1. int类型是一种基本数据类型,其变量是放在栈内存中的。Integer是对应于int的类类型,称为对象包装,其实例是放在堆内存中的。Integer包装类的出现是为了提供关于int基本数据类型的一些方法,比如进制转换,其与字符串基本数据类型的转换等。
2. a==b的返回值是false,但a.equals(b)的返回值是true。a, b作为整形包装类的对象,==操作符的意义是比较两个对象的引用是否相同。而这两个对象的equals()方法继承于Object类,意义是比较两个对象的引用指向的对象是否相同。
3. 从内存分配的角度理解,==针对的是存储于栈内存中的引用,equals()方法针对的是存储于堆内存中的对象内容。 |