rto创建类ByteBuffer的实例,但得到错误说"无法实例化类型ByteBuffer

时间:2015-10-16 17:43:56

标签: java

当我有以下代码行来创建ByteBuffer的实例时 我得到一个错误说"无法实例化类型ByteBuffer" ByteBuffer get = new ByteBuffer();

程序 static int g = 0;

$('.btn-send').on('click', function(e){
    e.preventDefault();
    $('.waiting').fadeIn('fast');
});

2 个答案:

答案 0 :(得分:2)

因为它是一个抽象类,ByteBuffer无法直接实例化,但您可以使用allocateallocateDirect工厂方法:

要选择是否需要直接缓冲区,请阅读类级Javadoc:

  

字节缓冲区是直接缓冲区或非直接缓冲区。给定直接字节缓冲区,Java虚拟机将尽最大努力直接执行本机I / O操作。也就是说,它将尝试避免在每次调用底层操作系统的本机I / O操作之前(或之后)将缓冲区的内容复制到(或从中间缓冲区)。

     

可以通过调用此类的allocateDirect工厂方法来创建直接字节缓冲区。与非直接缓冲区相比,此方法返回的缓冲区通常具有更高的分配和解除分配成本。直接缓冲区的内容可能位于正常的垃圾收集堆之外,因此它们对应用程序的内存占用量的影响可能并不明显。因此,建议直接缓冲区主要分配给受基础系统本机I / O操作影响的大型长期缓冲区。通常,最好只在它们在程序性能中产生可测量的增益时才分配直接缓冲区。

对于与文件的内存映射区域对应的ByteBuffer实例,您也可以考虑MappedByteBuffer

答案 1 :(得分:1)

ByteBuffer是一个抽象类。抽象类无法实例化。

http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html