2

我对为什么 java 开发人员声明为

public static final int MAX_PRIORITY
public static final int MIN_PRIORITY
public static final int NORMAL_PRIORITY

而不是声明public static final byte MAX_PRIORITY. 因为对于这些变量,最高值仅为 10。所以我认为字节足够 int 范围高于字节。
这背后有什么具体原因吗?有人可以向我解释一下吗?

4

4 回答 4

4

字节使用的存储空间略少,但使用起来并不比整数快——因为基本​​上所有 32 位处理器都以整数工作。

没有真正的理由使用字节而不是整数,除非您存储一个数组或类似的数组,然后可以将它们打包到更小的空间中。

于 2013-12-26T09:31:10.627 回答
0

因此,如果将来希望引入另一个不在字节范围内的值,则实现者不会发现自己受到先前的不适当决定(例如您似乎喜欢的决定)的束缚。

于 2013-12-26T09:49:25.020 回答
0

我的猜测是这是项目中的代码约定,因为在这种情况下,由于内存对齐,使其字节将在 x64 架构上节省 8 个字节。这背后的基本原理可能是,在未来的版本中,该字段可用于存储其他线程状态信息。

于 2013-12-26T09:51:54.490 回答
-1

在幕后,java int(在大多数情况下)具有与 a(和短类型)相同的大小byte,所以这并不重要。

byte当使用它是合乎逻辑的时使用它(当数据本身以字节表示时,如原始数据),或者当你有一个小数字数组时为了节省空间。

int是开发人员使用的默认类型,除非他们有充分的理由使用其他东西。

于 2013-12-26T09:30:59.863 回答