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
添加回答
举报
