云清丰坦:
在Java中,`Integer`是一个对象类型,而`int`是基本数据类型。虽然`e`是`int`类型,`f`是`Integer`对象,但在 `System.out.println(e==f);` 这一行中,`e`会自动拆箱为`int`类型,因此这段代码比较的是两个 `int` 值。
对于数字范围在 -128 到 127 之间的 `Integer` 对象,Java会使用缓存,因此在这个范围内的相同值会引用同一个对象。然而,数字321超出了这个范围,因此`f`指向的`Integer`对象与`e`的值不同。
因此,`e==f`的结果为`false`。