Java中Integer.BYTES的作用是什么?

3

我没有找到这个问题被问过,所以我不得不问一下。

Java文档表示:

用二进制补码形式表示int值所需的字节数。

为什么我们要在Java中使用它?我知道什么是二进制补码形式,但我无法理解它的用途。

我在Tim Buchalka的课程中特别发现了这一点,但他无法很好地解释它。他使用它的代码是:

int locationStart = (int) (indexSize + rao.getFilePointer() + Integer.BYTES);

这段文字涉及到RandomAccessFile(随机访问文件)的使用,有些教程在解释RAF时没有使用Integer.BYTES。


3
这是一个常量,它基本上表示一个 int 需要 4 个字节。你可以在代码中使用一个神奇数字,或者使用更具描述性的常量。假设你打开了一个 RAF,其中只包含 ints,并想将光标定位在第五个 int 上。你可以将光标定位在字节偏移量 4 * 44 * Integer.BYTES 的位置。前者可能更短,但后者更易读和维护。需要明确的是:该常量与随机访问文件本身无关,而是与包含二进制 int 数据的字节流/数组相关。 - Thomas
2个回答

1
您可以使用Integer.MAX_VALUE来表示一个int类型的最大值,即231-12147483647。同样地,您可以使用Integer.BYTES来表示一个int类型所占用的字节数,即4个字节。使用命名常量比直接使用数值本身更加易于维护和减少错误率。 此页面列出了许多这样的常量值。

0
根据我的理解,JavaDoc的注释部分"[...]用于表示int的字节数[...]"是重要的部分,而不是使用了二进制补码。由于Integer是原始类型int的对象表示形式,它提供了关于Integer/int类型的更多信息,比如Integer.BYTES = 4或Integer.MAX_VALUEInteger.MIN_VALUE
Java有八种原始数据类型请参阅JavaDoc中的原始类型。 它们的所有对象表示都为您提供了这个常量,以便您知道存储该类型变量的值将使用多少内存。例如Short.BYTES = 2,Long.BYTES = 8等等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接