为什么Java在数字提升期间将字节和短操作数转换为int

时间:2011-01-01 20:28:15

标签: java jls

Numeric Promotion进程中将小数据类型(例如byte)扩展为int的原因是什么?是不是可以直接在这些较小的数据类型上执行大多数操作?

2 个答案:

答案 0 :(得分:2)

VM是一个虚拟机,JIT将其转换为本机代码并对其进行优化。所有寄存器都是32位或64位,“短”操作不一定也不快。

答案 1 :(得分:0)

VM不支持小于4个八位字节的整数,因此在VM中运行时,您将运行4个八位字节或8个八位字节长度。 (好吧它适用于数组,barray sarray等,而不是单个值)。