作者qrtt1 (隐者)
看板java
标题Re: [问题] 关於StringBuffer与区域变数
时间Thu Jun 15 10:16:14 2006
※ 引述《superlubu (劲过吕布)》之铭言:
: ※ 引述《qrtt1 (隐者)》之铭言:
: : import java.io.IOException;
: : import java.util.Arrays;
: : import java.util.List;
: : public class Alias {
: : public static void main(String[] args) throws IOException {
: : StringBuffer a = new StringBuffer("A");
: : StringBuffer b = new StringBuffer("B");
: : // in function, the args is an alias for params
: : // make alias for b
: : StringBuffer y = b;
: : // y's content equals to b's content
: : System.out.println(y.toString());
: : // a.append method create a new StringBuffer
: : // y is assigned to new instance
: : y=a.append(b);
: Returns:
: a reference to this StringBuffer object.
: StringBuffer.append() 不会 create 一个新的 StringBuffer object, 而是
: 回传本来的那个 StringBuffer object.
: 只要用 System.out.println( (y==a) ); 就可验证了。
orz..不好意思, 俺讲错了.
但重点是reference y和b的关系就此中止
并且y变和了a
System.out.println(y.equals(a));
: : System.out.println(y.toString());
: : // now b is not associated with y
: : System.out.println(b.toString());
: : System.out.println(a.toString());
: : }
: : }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.26.34.214