如果short在算术运算中自动提升为int,那么为什么是:shortthirty=10*3;对short变量thirty的合法赋值?反过来,这个:shortten=10;shortthree=3;shortthirty=ten*three;//DOESNOTCOMPILEASEXPECTED还有这个:intten=10;intthree=3;shortthirty=ten*three;//DOESNOTCOMPILEASEXPECTED无法编译,因为如果未按预期进行强制转换,则不允许将int值分配给short。数字文字有什么特别之处吗? 最佳答案
如果short在算术运算中自动提升为int,那么为什么是:shortthirty=10*3;对short变量thirty的合法赋值?反过来,这个:shortten=10;shortthree=3;shortthirty=ten*three;//DOESNOTCOMPILEASEXPECTED还有这个:intten=10;intthree=3;shortthirty=ten*three;//DOESNOTCOMPILEASEXPECTED无法编译,因为如果未按预期进行强制转换,则不允许将int值分配给short。数字文字有什么特别之处吗? 最佳答案
为什么JavaAPI使用int,而short甚至byte就足够了?示例:DAY_OF_WEEK类中的字段Calendar使用int。如果差异太小,那为什么还存在这些数据类型(short、int)? 最佳答案 已经指出了一些原因。例如,"...(Almost)Alloperationsonbyte,shortwillpromotetheseprimitivestoint".然而,下一个明显的问题是:为什么这些类型被提升为int?所以更深入一点:答案可能只是与Java虚拟机指令集有关。正如TableintheJavaVirtualMac
为什么JavaAPI使用int,而short甚至byte就足够了?示例:DAY_OF_WEEK类中的字段Calendar使用int。如果差异太小,那为什么还存在这些数据类型(short、int)? 最佳答案 已经指出了一些原因。例如,"...(Almost)Alloperationsonbyte,shortwillpromotetheseprimitivestoint".然而,下一个明显的问题是:为什么这些类型被提升为int?所以更深入一点:答案可能只是与Java虚拟机指令集有关。正如TableintheJavaVirtualMac
这似乎是一个有点愚蠢的问题,但看到AlexandreC的reply在另一个主题中,我很想知道内置类型是否有任何性能差异:charvsshortvsintvs.floatvs.double.通常我们在现实生活中的项目中不会考虑这种性能差异(如果有的话),但我想知道这是出于教育目的。可以问的一般问题是:积分算术和浮点算术之间有什么性能差异吗?哪个更快?更快的原因是什么?请解释一下。 最佳答案 浮点与整数:从历史上看,浮点运算可能比整数运算慢得多。在现代计算机上,情况不再如此(在某些平台上它会稍微慢一些,但是除非您编写完美的代码并针对每个
这似乎是一个有点愚蠢的问题,但看到AlexandreC的reply在另一个主题中,我很想知道内置类型是否有任何性能差异:charvsshortvsintvs.floatvs.double.通常我们在现实生活中的项目中不会考虑这种性能差异(如果有的话),但我想知道这是出于教育目的。可以问的一般问题是:积分算术和浮点算术之间有什么性能差异吗?哪个更快?更快的原因是什么?请解释一下。 最佳答案 浮点与整数:从历史上看,浮点运算可能比整数运算慢得多。在现代计算机上,情况不再如此(在某些平台上它会稍微慢一些,但是除非您编写完美的代码并针对每个