本帖最后由 whocases 于 2012-6-30 19:28 编辑
书上说当调用ByteBuffer.array()的时候可能会抛出UnsupportedOperationException,但当我自己用allocate(int)来创建缓冲区后,再调用array()来获得数组,发觉根本就不会抛出此异常,我想知道是不是API里说错了还是为什么?
import java.nio.IntBuffer;
public class Test3{
public static void main(String[] args){
IntBuffer buffer = IntBuffer.allocate(10);
for(int i = 0 ; i < 5 ; i ++){
buffer.put(i);}
int[] array = buffer.array();
/**
*当是用ByteBuffer.array()方法来获得缓冲区中的数据数组时,
*此时缓冲区中的数据和对应的数组共享.
*/
buffer.flip();
buffer.put(100);
for(int i : array){
System.out.println(i);
}
}
} |
|