对数字的默认类型如果我写这样的事情有没有在Java中
System.out.println(18);
哪种类型有“18”? 是int or byte? 或者它还没有类型?
它不能是int,因为这样的事情是正确的:
byte b = 3;
这是不正确的:
int i = 3;
byte bb = i; //error!
编辑: 我想我找到了规范的右部在Assignment Conversion:
常量的编译时间缩小意味着代码如:
byte theAnswer = 42;
是允许的。如果没有缩小,那么整数字面量42具有类型int的事实意味着需要强制转换为字节:
byte theAnswer =(byte)42; //铸造被允许但不要求
很确定它是一个int – user3282276 2014-12-03 03:23:09
在Java规范中仔细地阐述了原始转换。整数类型将默认为“int”,但对于缩小和扩大转换有特定的规则。 https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html – 2014-12-03 03:25:24
感谢您的链接,马特。 – colorblind 2014-12-03 04:56:24