为什么FileInputStream在java中读取方法返回一个int,而不是short?

cra*_*udy 6 java

我知道byte不是一个足以包含read方法结果的正确类型.
因此,read方法返回int类型值.
但我认为短类型比int更有效.
它可以包含范围-256~255的值.
为什么read方法返回int,而不是short?

das*_*ght 8

关于原始类型的Java文档建议short应该使用ints 而不是s来"在大型数组中保存内存":

short:short数据类型为16位有符号二进制补码整数.它的最小值为-32,768,最大值为32,767(含).与byte此同样,适用相同的指导原则:short在内存节省确实很重要的情况下,您可以使用a 来节省大型阵列中的内存.

因为在这种情况下,内存节省实际上并不重要,使用int是一个更一致的选择.

  • +1 JVM使用32位"槽"作为返回值,用于byte,char,short和int. (8认同)