a,b都是引用,分别指向内存中的A、B
当你调用operate()方法时,开辟栈内存,
x,y也分别指向内存中的A、B,
x操作堆内存中的空间将A添加B,此时A所在的空间为AB,
然后将x的引用传给y,此时y也只想A所在的堆空间即AB,
y操作AB所在堆空间继续添加A,此时A所在空间内容为ABA。
operate()方法调用结束,x,y释放,但堆内存中操作的内容却保留了下来。
返回到main函数继续执行,此时a、b依然分别指向A、B所在堆内存
只是A中内容变为ABA,B中内容不变,所以打印结果为ABA,B |