如题、。请问谁知道有啊。toString() 好像打印不出来这种基本数据类型与包装类的、
public static void main(String[] args) {
int a = 3;
Integer b = 3;
System.out.println(b.toString()); //结果是3
}
如果比较a==b 返回的是true
a只是基本数据类型不知道如何获取其内存地址
b是包装类但是 toString() 方法打印的是值 3
如何知道他们的内存地址是一样的。
基本数据类型int不在堆里开内存,所以不能使用toString()打印指针地址。
包装类型Integer内存开在堆里,所以可以打印指针地址(Java5)。
两个基本数据类型定义为相同的值时,不会共用同一片内存区域。(修改其中一个的值时,另外一个不发生改变)
两个包装类型定义为相同的值时,要根据Java版本具体分析。
Java8使用Integer时,实际表现和int相同,即a==b、a.equals(b)均为真,但是当修改其中一个的值时,另外一个不发生改变,说明并不指向同一地址。
Java5中Integer视为对象,int视为基本数据,内存地址不同。
最后,你Integer打错了(笑)
tostring()可以打印的,jdk1.5以后会自动拆装箱的!不同的是int不能null,为Integer可以等于null