java - 字符串的变量引用值

标签 java reference

如何获取字符串对象的引用值?

如果我有这样的类(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/

相关文章:

perl - 如何将 perl 哈希字符串引用转换为 perl 哈希引用

java - 在多线程代码中,System.nanoTime() 会产生小的不准确度吗

已删除对象的 C++ 引用

Java - 读取文件夹中的许多txt文件并处理它们

java - 在 Java 中处理小数点后有很多值的数字

Python - 传递对象值而不是引用

perl - 在 Perl 中 typeglobs 可以作为引用的原因

c++ - 可以使用对 shared_ptr 拥有的对象的引用吗?

java - Grails 应用程序 : Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf. apache.org/jaxrs]

java - Bean创建异常: Error creating bean with name 'pgService' defined in class path resource