我实际上想问的是,如果我写:
byte b=13;
short s=14;
然后右侧的值,即 13 和 14 分别被视为 byte 和 short Or 仅被读取为编译器的 int 类型。 如果它们分别被读取为字节和短裤那么为什么,
byte b1=13;
byte b2=23;
byte b3=b1+b2;
还有
short s1=14;
short s2=24;
short s3=s1+s2;
在java中是无效语句(短s3=s1+s2;和字节b3=b1+b2;),即使在这两种情况下精度都没有受到影响。
如果编译器只是将它们读取为 int 类型,那么编译器如何维护它们的标识为 byte 或 short> 类型?
最佳答案
Java 没有字节或短文字。它所拥有的是 implicit assignment conversion当 int 是编译时常量并且在目标类型的范围内时,从 int 到 byte、char 和 Short。
所以,这没问题:
byte b = 13+14; // implicit conversion
但这不是:
void method(byte b) {}
method(13);
也不是这个:
byte b = 13+nonConstant;
关于java - Java 编译器是否将 byte 和 Short 识别为文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24837620/