java语言hashcode和真实物理地址的关系以及相关几个问题

[复制链接]
查看11 | 回复4 | 2015-11-17 17:28:45 | 显示全部楼层 |阅读模式
第一,输出的是:getClass().getName() + "@" + Integer.toHexString(hashCode()),这是jdk对toString方法的实现。第二,“==”比较的就是一个对象的引用地址是否相同,即是不是一个对象。即不是左右两边非一个对象的话,该运算就返回false。hashcode和物理地址没关系,只是一种约定,并非强制性的。主要是为相关哈希集合及运算服务的。再具体的部分要看jdk关于hashcode的解释了。第三,java没有指针操作,但到处都是指针操作,即对象操作,...
回复

使用道具 举报

千问 | 2015-11-17 17:28:45 | 显示全部楼层
这个问题的解释其实很复杂,就简单其鉴来说,直接回答楼主的3个问题:1、输出的是:getClass().getName() + "@" + Integer.toHexString(hashCode()),这是jdk对toString方法的实现。2、“==”比较的就是一个对象的引用地址是否相同,即是不是一个对象。即不是左右两边非一个对象的话,该运算就返回...
回复

使用道具 举报

千问 | 2015-11-17 17:28:45 | 显示全部楼层
问题1,对的Object o1=new Object();System.out.println(o1); 输出[email protected](o1.hashCode());输出19764978,其实就是12d96f2的十进制形式问题二,"=="比较的o1和o2指向堆栈的地址,因为o1和...
回复

使用道具 举报

千问 | 2015-11-17 17:28:45 | 显示全部楼层
//这是System.out.println的实现,把Object变成string打印出来public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLi...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行