上
System.out.println(databaseConnection);
我有
jdbcconnection.DatabaseConnection@43bf3d77
谁能更详细地解释这段文字,更重要的是“43bf3d77”?
因为DatabaseConnection
类没有覆盖,所以toString()
将使用 Object 类方法:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
它是哈希码的十六进制字符串。
正如 Paul 评论的那样,它对程序员来说毫无用处。
由于该类DatabaseConnection
没有覆盖toString()
(by Object class
) 的默认实现,因此您会看到类名及其哈希码。
jdbcconnection.DatabaseConnection 表示 databaseConnection 是一个数据库连接,是 Java 数据库连接连接的一个子集。@43bf3d77 显示“@”,后面是十六进制写的 databaseConnection 的哈希码。
字符串从对象43bf3d77
的方法返回(参见 Nambari 的答案)。默认实现是将对象的内部地址转换为整数(但这取决于虚拟机的实现,可能是内存中对象地址的截断版本或编码版本。例如JRockit)hashCode
databaseConnection