区分复制的值与经它访问的对象。
复习基本值与引用实参、重载、覆盖、构造字段及lambda捕获限制。
正确数记录本版六道选定Java 25任务中匹配答案的次数,不是开发者等级、百分位、招聘线或资格。任何正确数都能读每题解析和本篇完整复习指南。
调用与对象状态的六项选择
本节从表达式进入调用方、形参、对象的关系,问改变基本形参影响哪里、数组引用能更新什么、选哪个重载、运行哪个覆盖方法、构造器把实参存哪里、lambda捕获能否编译。题目是完整独立Java 25程序,不要求猜省略的类定义。
跟随复制的引用找到同一可变数组
新不计分助手setFirst(int[] a)执行a[0]=12。调用方建int[] values={5},调用后打印values[0],会得12,因为形参复制的是指向同一数组的引用。若助手改为a=new int[]{12},只重绑形参,调用方原数组仍含5。两者都按值传递,区别在修改对象与重赋变量。
把重载选择与覆盖分开
重载调用按适用签名与表达式编译期类型解析。题中Object声明的实参即使指向String,也选Object重载。签名已定的实例覆盖是另一问题,父类型引用可运行子类实现。先分清所问阶段,再套规则;简单例不覆盖泛型、可变参数和重载的所有交互。
指出赋值究竟改变哪个变量
构造形参可与字段同名,this.n指出新对象字段,当前作用域里未限定n可指形参。预测储存状态前分开读赋值左右两侧。同理,被捕获局部变量不同于经对象访问的字段。题中lambda局部在初值后重赋,不是有效final,程序在执行前就被拒绝。
把变量与对象画成不同方框
可丢弃练习中,每个局部变量一框,每个新对象或数组另框,用箭头表示引用,标出语句是改箭头还是改目标元素,调用时再加形参框。按指定Java版先预测再编译。画图帮助跟程序,不声称描述物理地址或虚拟机所有优化。
从正确数找到弄混的关系
对照所选与解析,问哪种关系读错了:是否认为改int副本就改调用方、复制引用就复制整个对象,或运行对象类型决定所有重载?错题指出该例的复习机会。选对不证明能设计可维护API、审陌生服务或向团队解释设计决定。
编译核查与能力主张分开
原创题组含成功程序和明确预期的编译失败,均用Temurin JDK 25.0.2核过。编译错误是可能的标准结果,不是练习页坏了。题组没有经校准开发者等级、Oracle认证或招聘推荐;任何正确数都免费提供全解析和四份公开全文。两语代码相同,说明翻译不建立心理测量等价。