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); } public static void operate(StringBuffer x, StringBuffer y) { x.append(y); y = x; } }
执行程序之后,控制台打印什么?
答案:AB B
解释:
这里的y是AB,在语句x.append(y)执行后,x的值变为"AB",因为append方法会修改原始对象;
而在语句y=x执行后,y的值将指向x所指向的对象,也就是"AB"。但是这个操作只是将y的引用指向了新的对象,对原始的y并没有任何影响。
所以,最后打印出来的y仍然是"B",而不是"AB"。
标签:传参,AB,变量,指向,StringBuffer,例题,public,append From: https://www.cnblogs.com/xialang/p/17742031.html