-1

System.out.println(databaseConnection);

我有

jdbcconnection.DatabaseConnection@43bf3d77

谁能更详细地解释这段文字,更重要的是“43bf3d77”?

4

4 回答 4

4

因为DatabaseConnection类没有覆盖,所以toString()将使用 Object 类方法:

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

它是哈希码的十六进制字符串。

正如 Paul 评论的那样,它对程序员来说毫无用处。

于 2013-07-01T19:05:19.917 回答
2

由于该类DatabaseConnection没有覆盖toString()(by Object class) 的默认实现,因此您会看到类名及其哈希码。

于 2013-07-01T19:06:16.277 回答
1

jdbcconnection.DatabaseConnection 表示 databaseConnection 是一个数据库连接,是 Java 数据库连接连接的一个子集。@43bf3d77 显示“@”,后面是十六进制写的 databaseConnection 的哈希码。

于 2013-07-01T19:24:41.570 回答
0

字符串从对象43bf3d77的方法返回(参见 Nambari 的答案)。默认实现是将对象的内部地址转换为整数(但这取决于虚拟机的实现,可能是内存中对象地址的截断版本或编码版本。例如JRockithashCodedatabaseConnection

于 2013-07-01T20:33:57.150 回答