星海

Java 基础 · 单选题 · 第 4 题

Java 后端开发面试 · 第 4 题

执行下面的代码,两次输出依次是?

Integer a = 127, b = 127;
Integer c = 128, d = 128;
System.out.println(a == b);
System.out.println(c == d);
  1. Atrue、true
  2. Bfalse、false
  3. Ctrue、false
  4. Dfalse、true

答案

C C. true、false

解析

自动装箱调用 Integer.valueOf,它会缓存 -128 到 127 的 Integer 对象,所以 a 和 b 是同一个对象。128 超出缓存范围,每次装箱都创建新对象,== 比较引用就是 false。比较包装类的数值一律用 equals,或者先拆箱再比。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。