【发布时间】:2015-02-21 18:21:31
【问题描述】:
当我们这样做时:
String string = new String("Ralph");
//This creates a reference called string that points to a sequence of
//characters in memory
这与:
String string = "Ralph";
当我们打印两者时,我们得到字符串的实际值。 如果我们在 Java 中打印任何其他对象,我们将获得该对象的地址。 我的问题是,幕后是否有任何取消引用?
【问题讨论】:
-
对于任何其他对象,您得到的是它的
toString()方法,而不是“地址”。Object的toString()打印其类名和哈希码。 -
String 覆盖 Object.toString() 方法。所有其他类也可以这样做。如果这样做,则在打印对象时将打印返回的字符串。
-
来自 docs (docs.oracle.com/javase/1.5.0/docs/api/java/lang/…) - “这个对象(已经是一个字符串!)本身就被返回了。”