当前位置: 首页 > 知识库问答 >
问题:

为什么java中的FileInputStream read方法返回一个int而不是一个short?

匡玉堂
2023-03-14

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

共有1个答案

陶博耘
2023-03-14

有关基元类型的Java文档建议,应该使用shorts而不是ints来“节省大型数组中的内存”:

short:short数据类型是一个16位带符号的2的补码整数。其最小值为-32,768,最大值为32,767(含)。与byte一样,也适用相同的指导原则:在节省内存非常重要的情况下,可以使用short在大型数组中节省内存。

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

 类似资料:
  • 问题内容: Go 包中的大多数输出​​方法都会返回,例如的方法和函数。但是,一些输出方法(例如的方法)会返回。这使得不方便实现在以下方面或不存储的中间值,并输入从将其转换到。这种差异的原因是什么? 问题答案: 复制的数据可能超过int32字节。 使用和接口,数据量受给定切片的大小限制,该切片的长度受当前体系结构的限制。

  • 为什么返回而不是像或这样的较小类型?我的理解是,这个方法只返回-1、0或1。 第二部分,如果我要设计一个比较方法来比较两个类型的对象,并且我只想返回-1、0或1,那么使用或通常是个好主意吗? 编辑:我已经更正,不返回-1,0或1,它实际上返回一个值 答案似乎大致是,没有理由返回小于的类型,因为返回值是右值,而这些右值不会受益于小于int类型(4字节)。此外,许多人指出,大多数系统的寄存器可能会有大

  • 在f2中,我们有指针 改为func f2(arg int)(int,*error)?或者,在这种情况下,为什么我们返回指针而不是值?

  • 问题内容: 在Java中,hashcode()方法返回整数而不是long。有什么具体原因吗? 问题答案: 那么,一个良好的理由是,基于数据结构(,)使用一个数组来存储箱,并且阵列被限制为索引。 如果必须将其映射到数组索引,那么您将一无所获。

  • 问题内容: 为什么不: 代替: 获得唯一哈希码的更高机会? 问题答案: 因为数组的最大长度为。 由于的主要用途是确定将对象插入/ 的后备数组中的哪个插槽,因此hashcode> 将无法存储在该数组中。

  • 本文向大家介绍Ajax中responseText返回的是一个页面而不是一个值,包括了Ajax中responseText返回的是一个页面而不是一个值的使用技巧和注意事项,需要的朋友参考一下 自己在struts2中的写好了业务逻辑用response返回的内容却是一个页面的! 然后就去了百度一下,说的是将struts2的返回值设为null(return null),这是因为struts2返回的是一个页面