关于对象引用传递,以下代码执行后输出结果是? ```java class Box { int value; Box(int v) { value = v; } } public class Test { static void modify(Box a, Box b) { a.value *= 2; b = new Box(5); } public static void main(String[] args) { Box x = new Box(2); Box y = new Box(3); modify(x, y); System.out.print(x.value + " " + y.value); } } ```

答案解析

核心考点:Java参数传递机制(值传递)与对象引用特性 解题思路分析: 1. 方法参数传递的是引用的副本 2. 修改引用副本指向的对象不会影响原始引用 3. 通过引用修改对象属性会影响原始对象 选项分析: A正确:x传入modify后其value被改为4,y的引用副本被修改不影响原始y B错误:混淆对象属性修改与引用重新赋值的区别 C错误:错误认为两个参数都会被修改 D错误:未理解a.value*=2会改变原始对象 易错点提醒: - 方法内对形参的重新赋值(b=new Box(5))不影响实参 - 通过形参修改对象属性(a.value)会影响实参指向的对象
正确答案:A
随机推荐
开始刷题