2 回答
TA贡献1982条经验 获得超2个赞
当您将对象传递给 的println
方法时System.out
,调用的是toString
在Object
类中声明的方法。这只是为了System.out.println
弄清楚要打印什么。
的方式toString
方法中所定义Object
并不是很有益的-它打印出一堆通常涉及到对象的存储位置,而不是它的内容的字符集。
然而,包括 在内的一些类StringBuffer
有自己的版本,toString
它们覆盖了Object
. 所以,如果你System.out.println
并通过它StringBuffer
,你会真正看到缓冲区的内容,而不是字符,你会得到,如果版本toString
从Object
类被调用。
您的IntReference
类没有自己的toString
方法,因此当您将IntReference
对象传递给 时System.out.println
,会调用类中的toString
方法Object
。这不是很有用,这就是为什么你要做这样的事情System.out.println(intref.getA())
。
TA贡献2051条经验 获得超10个赞
String
表示固定长度的、不可变的字符序列,而StringBuffer
表示可增长和可写的字符序列。 StringBuffer
可能有字符和子字符串插入中间或附加到末尾。它会自动增长,为此类添加腾出空间,并且通常会预先分配比实际需要更多的字符,以留出增长空间。
StringBuffer(String str)
:它接受一个 String 参数,该参数设置 StringBuffer 对象的初始内容,并为 16 个以上的字符保留空间而无需重新分配。有关更多基础知识,请参阅此链接:https : //www.tutorialspoint.com/java/lang/java_lang_stringbuffer.htm
添加回答
举报