MyException - 我的异常网
当前位置:我的异常网» J2SE » SCJP一路题目求解

SCJP一路题目求解

www.MyException.Cn  网友分享于:2013-11-19  浏览:25次
SCJP一道题目求解。
Java code
public class Test {
    public static void main(String[] args) {
        StringBuffer a = new StringBuffer("A");
        StringBuffer b = new StringBuffer("B");
        operate(a, b);
        System.out.println(a + "," + b);
    }

    static void operate(StringBuffer x, StringBuffer y) {
        x.append(y);
        y = x;
    }
}


请问为什么输出 AB,B 呢。。求详解。。

------解决方案--------------------
operate(a, b);

 static void operate(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}

中x跟a指向同一个StringBuffer,y和b是指向同一个StringBuffer,y=x,只是将y的指向变为x和a指向的StringBuffer,并没有改变b的指向。

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有