已知类定义如下: public class t{ int x; public void change(t x){ x.x=x; } } 如果外部执行 t x1=new t(); x1.x=20; t x2=new t(); x2.x=10 x1.change(x2); System.out.println(x1.x+" "+x2.x); 输出结果是? A. 10 10 B. 20 10 C. 程序编译出错 D. 10 20
时间: 2024-04-29 12:19:34 浏览: 50
Java中的堆、栈和常量池_.docx
程序会输出 "10 10"。原因是在执行 `x1.change(x2)` 的时候,传递的是 x2 的引用,即 x1 和 x2 指向了同一个对象。在 `x1.change(x2)` 方法中,将 `x.x` 赋值为 `x`,即将 `x1.x` 的值赋为了 `x2` 的引用,因此 `x1.x` 和 `x2.x` 的值都变成了 10。
阅读全文