这个 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