有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

附加到类型变量的java编号?

在Eclipse中,调试时,我看到变量后面附加了一个数字,如 通用域名格式。废话。废话。blah@82963fb

82963fb是什么意思?是内存地址吗


共 (2) 个答案

  1. # 1 楼答案

    您看到的是对象的输出。toString()方法。其定义为:

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    

    所以,你在@之后看到的是Integer.toHexString(hashCode())

  2. # 2 楼答案

    它是对象的“标识哈希代码”值的十六进制呈现。它是^{}方法返回的值。此方法还用于为其类未重写Object.hashcode()方法的对象提供默认hashcode值

    它不一定是对象的内存地址,但实际上,标识哈希代码与>&燃气轮机;a<&书信电报;对象的内存地址。(该值通常基于第一次调用方法时对象的地址。对象的地址随后可能会更改,但哈希代码值不会更改。)

    (整个字符串由默认的Object.toString()方法生成。@前面的部分是对象的完全限定类名。)