2 回答
TA貢獻1982條經(jīng)驗 獲得超2個贊
當您將對象傳遞給 的println方法時System.out,調(diào)用的是toString在Object類中聲明的方法。這只是為了System.out.println弄清楚要打印什么。
的方式toString方法中所定義Object并不是很有益的-它打印出一堆通常涉及到對象的存儲位置,而不是它的內(nèi)容的字符集。
然而,包括 在內(nèi)的一些類StringBuffer有自己的版本,toString它們覆蓋了Object. 所以,如果你System.out.println并通過它StringBuffer,你會真正看到緩沖區(qū)的內(nèi)容,而不是字符,你會得到,如果版本toString從Object類被調(diào)用。
您的IntReference類沒有自己的toString方法,因此當您將IntReference對象傳遞給 時System.out.println,會調(diào)用類中的toString方法Object。這不是很有用,這就是為什么你要做這樣的事情System.out.println(intref.getA())。
TA貢獻2051條經(jīng)驗 獲得超10個贊
String表示固定長度的、不可變的字符序列,而StringBuffer表示可增長和可寫的字符序列。 StringBuffer可能有字符和子字符串插入中間或附加到末尾。它會自動增長,為此類添加騰出空間,并且通常會預先分配比實際需要更多的字符,以留出增長空間。
StringBuffer(String str):它接受一個 String 參數(shù),該參數(shù)設置 StringBuffer 對象的初始內(nèi)容,并為 16 個以上的字符保留空間而無需重新分配。有關更多基礎知識,請參閱此鏈接:https : //www.tutorialspoint.com/java/lang/java_lang_stringbuffer.htm
添加回答
舉報
