Java 首字母是什么;“模式”;比特伯弗的?

Java 首字母是什么;“模式”;比特伯弗的?,java,nio,bytebuffer,Java,Nio,Bytebuffer,在学习这个类的过程中,我开始思考一个由tebuffer包装的数组,它可以按照如下方式构造: byte data[] = new byte[10]; // Populate data array ByteBuffer myBuffer = ByteBuffer.wrap(data); int i = myBuffer.getInt(); 我想,这可能会将字节数组的前4个字节作为int值检索。然而,随着我进一步研究,我似乎发现ByteBuffer有两种模式,即读模式和写模式,我们可以使用flip(

在学习这个类的过程中,我开始思考一个由tebuffer包装的数组,它可以按照如下方式构造:

byte data[] = new byte[10];
// Populate data array
ByteBuffer myBuffer = ByteBuffer.wrap(data);
int i = myBuffer.getInt();
我想,这可能会将字节数组的前4个字节作为int值检索。然而,随着我进一步研究,我似乎发现ByteBuffer有两种模式,即读模式和写模式,我们可以使用
flip()
方法在它们之间进行翻转。然而,由于flip基本上是一种切换,因此它预先假定在读和写状态之间有意义地切换初始值

ByteBuffer初始状态的定义是什么

  • 阅读
  • 它是如何创建的函数(例如分配还是包装)

严格来说,ByteBuffer本身不跟踪它是“读”还是“写”;这只是它如何使用的函数。ByteBuffer可以随时读写。我们之所以说翻转切换“模式”,是因为它是写入缓冲区、翻转缓冲区然后从缓冲区读取的常见任务的一部分

实际上,allocate和wrap都将限制和容量设置为等于数组大小,并将位置设置为零。这意味着读操作可以读取整个数组,而写操作可以填充整个数组。因此,您可以使用新分配或包装的ByteBuffer进行读写操作