K.Sierra 在她的《SCJP 学习指南》一书中提到“我们知道文字整数始终是 int,但更重要的是,涉及任何 int 大小或更小的表达式的结果始终是 int。”
我已经开始试验,我对以下结果有点困惑:
byte a = 1; // correct
byte b = 1 + a; // incorrect (needs explicit casting)
byte c = 1 + 1; // correct (I expected it to be incorrect)
谁能向我解释为什么最后一个示例不需要强制转换?为什么 Java 编译器会进行隐式强制转换?是因为有 2 个 int 文字吗?澄清非常感谢。