java 里面int 与 Internet查看内存地址的方法是什么?

如题、。请问谁知道有啊。toString() 好像打印不出来这种基本数据类型与包装类的、

3个回答

tostring()可以打印的,jdk1.5以后会自动拆装箱的!不同的是int不能null,为Integer可以等于null

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打错了(笑)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐