先写类型和求值顺序,再写输出。
追踪整数运算、转换、字符串拼接、引用身份、后缀自增及短路求值。
正确数记录本版六道选定Java 25任务中匹配答案的次数,不是开发者等级、百分位、招聘线或资格。任何正确数都能读每题解析和本篇完整复习指南。
六个假设明确的表达式
本节用短小完整Java 25程序区分易混规则:整数除法不同于浮点除法,转int不是四舍五入,字符串拼接不同于数值加法。后面的操作数能读到前面的副作用,新建字符串内容相同却可不是同一对象。须预测给定程序,不猜作者意图,也不默改表达式。
追踪一个新的不计分表达式
试int n=6; String out=n++ + ":" + n;,首个n++给出6,再存7,拼冒号成为文本,后面读取n得7,所以out是6:7。用两列分别记表达式给出的值和变量储存值,它们概念不同。这是复习新例,不给固定六题加分,也不生成经校准新题本。
始终标明算术类型
运算前标明操作数类型和显式转换。在本版范围内的正数例子中,整数除法去掉商的小数,double转int向零舍弃小数。不核规则就不要把简单例推广到溢出、NaN、无穷或所有负数情况。字符串进入加号链后,逐步求值,不先把可见数字全加起来。
有意识地区分身份与内容比较
字符串题明确创建两个新对象,避免依赖相同字面量是否驻留。引用相等问是否同一对象,非null接收者的String.equals问字符内容。选对不证明每种equals实现语义相同,也不代表对null调方法安全。先指明实际类和比较的问题,再选操作符。
只改一个记号再预测
在可丢弃Java 25文件写短表达式,先预测再编译。每次只改后缀为前缀、&&为布尔&,或一对括号位置,核验前先说为什么会变。练习不用真实应用状态。这只是学习建议,没有保证提高速率,也不认为快速预测是唯一有用的编程技能。
把解析变成一个有名称的区别
若选择不同于答案,指出精确区别:商与余数、旧值与新值、数值相加与拼接、身份与内容、已执行与跳过的操作数。六题总数会掩盖差异,应读逐题全文。全对也不证明能在大程序发现未明示假设;看过答案重测可提高记忆,不必然迁移到陌生代码。
核过的片段不是职业评级
费马独立编例,用Temurin JDK 25.0.2、不启预览特性核编译及结果。产品提供知识选择,不运行访问者提交代码、不读私有仓库。Java规范支持选定规则,不为本练习背书。答案不导出Oracle资格、招聘分档、人群百分位或一般智力;两语保留相同英文代码,说明与解析双语。