是否可以基于字节索引Java数组?
即类似的东西
array[byte b] = x;
Run Code Online (Sandbox Code Playgroud)
我有一个性能非常关键的应用程序,它从文件中读取b(在上面的代码中),我不希望将此转换为int的开销.实现这一目标的最佳方法是什么?使用这种索引方法而不是int会导致性能下降吗?
非常感谢,
Froskoy.
"将其转换为int"没有任何开销.在Java字节码级别,所有bytes都已经int是s.
int无论如何,无论如何,进行数组索引会自动向上转换.这些都不会改善性能,许多会降低性能.只需使用代码保留代码即可int.
请注意,表2.2中的大多数指令都没有整数类型byte,char和short的形式.没有布尔类型的形式.编译器使用Java虚拟机指令编码字节和字节类型的文字值的加载,这些指令在编译时或运行时将这些值签名扩展为int类型的值.boolean和char类型的文字值的加载使用在编译时或运行时将文字零扩展为int类型的指令进行编码.同样,来自boolean,byte,short和char类型的值数组的加载使用Java虚拟机指令进行编码,这些指令将值符号扩展或零扩展为int类型的值.因此,对实际类型boolean,byte,char和short的值的大多数操作都是由对计算类型int的值进行操作的指令正确执行的.
| 归档时间: |
|
| 查看次数: |
2453 次 |
| 最近记录: |