【Java】ByteBuffer类的arrayOffset方法详解+示例

  • arrayOffset功能详解;
  • arrayOffset在position等于0和非0两种场景下的demo。

使用类java.nio.ByteBuffer中的arrayOffset()方法可以获得这个缓冲区的第一个元素在底层支持(backing)数组中的偏移量。
如果这个buffer底层是由数组支持的,那么buffer的postion p对应于数组的index是:p + arrayOffset()。

备注:
如果支持数组的缓冲区是只读的,则抛出ReadOnlyBufferException。所以在调用arrayOffset()方法之前,使用hasArray方法来确保
这个buffer有可以访问的支持数组。

下面给出两个示例程序,分别是position=0和position不等于0两种场景下的arrayOffset值:

例子1:

  /**
   * 测试ByteBuffer的arrayOffset方法,Bytebuffer的position为0的场景
   */
  @Test
  public void testArrayOffset1() 

你可能感兴趣的:(Java语言积累,java,开发语言)