【问题标题】:What is the point of Integer.BYTES in Java?Java 中的 Integer.BYTES 有什么意义?
【发布时间】:2021-04-12 16:59:14
【问题描述】:

我找不到这个问题,所以我不得不问它。

Java 文档说:

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

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

我在 Tim Buchalka 的课程中​​特别发现了这一点,但他很难正确解释。 他使用的代码是:

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

在 RandomAccessFile 课程中使用。我看到其他导师在不使用 Integer.BYTES 的情况下解释 RAF。

【问题讨论】:

  • 嗯,这是一个常量,基本上表示int 需要 4 个字节。您可以在代码中使用幻数或使用更具描述性的常量。假设您打开一个仅包含整数的 RAF,并且希望将光标定位在第 5 个整数。您可以将光标定位在字节偏移4 * 44 * Integer.BYTES。前者可能更短,但后者更容易阅读和维护。 - 明确一点:该常量与随机访问文件本身无关,而是与包含二进制 int 数据的字节流/数组有关。

标签: java integer byte


【解决方案1】:

Integer.MAX_VALUE 表示一个数字,该数字包含一个 int 可以具有的最大值,即231-12147483647,您可以用Integer.BYTES 来表示一个包含字节数的数字int 使用,即4。与使用值本身相比,使用命名常量维护代码更不容易出错且更容易。

This page 提供了许多这样的常量值。

【讨论】:

    【解决方案2】:

    据我了解,JavaDoc 的注释部分“[...] 用于表示 int[...] 的字节数”是这里的重要部分,而不是使用二进制补码。由于 Integer 是原始类型 int 的 Object 表示形式,因此它为您提供了有关 Integer/int 类型的更多信息,例如 Integer.BYTES = 4 或 Integer.MAX_VALUEInteger.MIN_VALUE

    Java 有八种原始数据类型see JavaDoc on primitive types。 他们所有的 Object 表示都提供了这个常量,让您知道将使用多少内存来存储该类型变量的值。比如Short.BYTES = 2、Long.BYTES = 8 等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2010-09-23
      • 2013-05-15
      • 2012-07-04
      • 2017-10-14
      相关资源
      最近更新 更多