Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中Integer.BYTES有什么意义?_Java_Integer_Byte - Fatal编程技术网

在Java中Integer.BYTES有什么意义?

在Java中Integer.BYTES有什么意义?,java,integer,byte,Java,Integer,Byte,我找不到有人问我这个问题,所以我不得不问 Java文档说: 用于以2的补码二进制形式表示int值的字节数 为什么我们要在Java中使用它?我知道2的补码二进制形式是什么,但我不知道它的用法 我在Tim Buchalka的课程中特别发现了这一点,但他很难正确解释。 他使用的代码是: int locationStart = (int) (indexSize + rao.getFilePointer() + Integer.BYTES); 它在RandomAccessFile课程中使用。我看到其他导

我找不到有人问我这个问题,所以我不得不问

Java文档说:

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

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

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

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

它在RandomAccessFile课程中使用。我看到其他导师解释RAF时没有使用Integer.BYTES。

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


表示许多这样的常量值。

据我所知,JavaDoc的注释部分“[…]用于表示int[…]的字节数”是这里最重要的部分,而不是使用2的补码。由于Integer是基本类型int的对象表示形式,因此它为您提供了有关Integer/int类型的更多信息,如
Integer.BYTES
=4或
Integer.MAX\u VALUE
Integer.MIN\u VALUE

Java有八种基本数据类型。
它们的所有对象表示形式都提供了这个常量,让您知道将使用多少内存来存储该类型变量的值。比如
Short.BYTES
=2,
Long.BYTES
=8等等。

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