static void operate (StringBuffer x, StringBuffer y) {
x.append(y); //这里是操作了对象本身, 所以内存中的对象内容, 这时改变了, 方法执行完, 内容已经发生了变化, 所以是AB
y = x; //这里是操作了对象的引用, 对象本身没有变, 只是引用变了, 方法执行过后会消失, 所以引用也随之消失(因为y只是个形式参数), 所以还是B
}
下面的modify方法也是一样的, 因为只是栈空间中的引用改变了(方法是在栈内执行的), 方法结束后就消失了, 所以还是原来的引用指向原来的对象 |