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
添加回答
舉報