如何获取字符串对象的引用值?
如果我有这样的类(class)
class T()
{
}
T t = new T();
System.out.println( t);
打印出T@a3455467,即t里面的引用值
但是对于字符串呢?也许用方法 hashCode()??
最佳答案
您想要的是系统身份哈希。您可以通过以下方式获取:
int id = System.identityHashCode(t);
Object.toString()
的默认实现是:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Object.hashCode()
的默认实现是 System.identityHashCode()
。
而且系统身份哈希码仅保证同一实例的恒定性(甚至不是唯一的 yet )。这不一定是引用值——无论它在 jvm 实现中是什么。 真正的引用值(value)是不透明的,没有真正在java中提供给公众。您无法将其转换为十六进制地址并查看内存或类似的内容。
关于java - 字符串的变量引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947943/