Java中的LongBuffer arrayOffset()方法

这个 arrayOffset() 方法 JAVA尼奥。长缓冲区 类用于返回缓冲区第一个元素的缓冲区备份数组中的偏移量。这意味着,如果这个缓冲区由一个数组支持,那么缓冲区位置p对应于数组索引p+arrayOffset()。

null

为了检查这个缓冲区是否有后备数组, hasArray() 方法可以使用。它确保该缓冲区有一个可访问的备份阵列。

语法:

public final Long arrayOffset()

返回值: 此方法返回 抵消 在缓冲区的第一个元素的缓冲区数组中。

例外情况: 这个方法抛出 ReadOnlyBufferException 如果此缓冲区由数组支持但为只读

下面的程序演示了 arrayOffset() 方法

项目1:

// Java program to demonstrate
// arrayOffset() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the LongBuffer
int capacity = 10 ;
// Creating the LongBuffer
try {
// creating object of Longbuffer
// and allocating size capacity
LongBuffer ib = LongBuffer.allocate(capacity);
// putting the value in Longbuffer
ib.put( 8 );
ib.put( 2 , 9 );
// prLong the LongBuffer
System.out.println( "LongBuffer: "
+ Arrays.toString(ib.array()));
// prLong the arrayOffset
System.out.println( "arrayOffset: "
+ ib.arrayOffset());
}
catch (IllegalArgumentException e) {
System.out.println( "IllegalArgumentException catched" );
}
catch (ReadOnlyBufferException e) {
System.out.println( "Exception throws" + e);
}
}
}


输出:

LongBuffer: [8, 0, 9, 0, 0, 0, 0, 0, 0, 0]
arrayOffset: 0

项目2: 演示ReadOnlyBufferException。

// Java program to demonstrate
// arrayOffset() method
import java.nio.*;
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// Declaring the capacity of the LongBuffer
int capacity = 10 ;
// Creating the LongBuffer
try {
// creating object of Longbuffer
// and allocating size capacity
LongBuffer ib = LongBuffer.allocate(capacity);
// putting the value in Longbuffer
ib.put( 8 );
ib.put( 2 , 9 );
ib.rewind();
// Creating a read-only copy of LongBuffer
// using asReadOnlyBuffer() method
LongBuffer ib1 = ib.asReadOnlyBuffer();
// prLong the LongBuffer
System.out.print( "Read only buffer : " );
while (ib1.hasRemaining())
System.out.print(ib1.get() + ", " );
// next line
System.out.println( "" );
// prLong the arrayOffset
System.out.println( "Try to prLong the array offset"
+ " of read only buffer" );
System.out.println( "arrayOffset: " + ib1.arrayOffset());
}
catch (IllegalArgumentException e) {
System.out.println( "Exception throws: " + e);
}
catch (ReadOnlyBufferException e) {
System.out.println( "Exception throws: " + e);
}
}
}


输出:

Read only buffer : 8, 0, 9, 0, 0, 0, 0, 0, 0, 0, 

Try to prLong the array offset of read only buffer
Exception throws: java.nio.ReadOnlyBufferException

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享