黑马程序员技术交流社区

标题: ByteBuffer.array()的问题 [打印本页]

作者: whocases    时间: 2012-6-28 20:06
标题: ByteBuffer.array()的问题
本帖最后由 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);
   }  
}
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2