byte b1 = 3;
byte b2 = 0;
b2 = (byte) (b2 + b1); // line 3
System.out.println(b2);
b2 = 0;
b2 += b1; // line 6
System.out.println(b2);
在第3行中,如果我们不将结果转换为字节 - 这可能是因为加法结果始终为int且int不适合一个字节。但显然我们不需要在第6行上进行类型转换。第3行和第6行的两个语句都不相等吗?如果不是,那么还有什么不同?添加字节时的不同编译器行为
没有更多的问题,你的荣幸。 – f1sh
感觉很好,让我的第一个问题由Jon Skeet回答:) – Zohaib