Java NIO 翻译 建立新的缓冲区(1)

翻译 2004年08月10日 14:53:00

    当你在通道(channel)上做各种I/O操作时,你必须通过使用缓冲区来完成. 缓冲区是一个包含数据的数组对象, 缓冲区内的数据可以被用来从存取通道上的数据.创建一个缓冲区是很容易的, 在这里我们看一下如何创建一个ByteBuffer对象:

int size=1024;
ByteBuffer buffer = ByteBuffer.allocate( size );
 
    这个方法只有简单的一个size参数: 底层的数组长度. 在这里我们称之为缓冲区的容量. 一旦缓冲区创建了,它的容量将不会再改变.最佳的缓冲区容量值取决于你的应用程序, 大一些的容量值可以提供更高的吞吐量, 但要花费更多的内存.反之如果使用较小的容量值,则会花费较少的内存,但也会降低一些性能.
 
    你可能会注意到, 在这里我们并没有用到传统的构造函数, 这是正常的. 缓冲区要么是通过静态的allocate()方法来得到,要么是从现存的字节数组中通过warp()函数得来, 它不需要用户直接创建出来.

    你可能也会注意到, 我们已经创建了一个ByteBuffer, 在java.nio包中同样包括了IntBuffer, ShortBuffer, FloatBuffer 等等, 缓冲区为Java中每一个原始类型都建立了相应的缓冲区子类,同时有一个抽象类称为Buffer,它是所有缓冲子类的父类.在以后几节我们将举例说明如何进行基本
的通道I/O操作.

java NIO 直接与非直接缓冲区

ByteBuffer有两个创建缓冲区的方法: static ByteBuffer allocate(int capacity) static ByteBuffer allocate...
  • cloudeagle_bupt
  • cloudeagle_bupt
  • 2016年08月18日 01:22
  • 1467

Java NIO直接缓冲区与非直接缓冲区区别

物理磁盘->内核地址空间->用户地址空间->应用程序 OS                              ->                           JVM 直接...
  • u013063153
  • u013063153
  • 2017年07月31日 22:38
  • 510

java NIO(七) 缓冲区——视图缓冲区

正如上一章节所说的,大多数的视图缓冲区都是字节缓冲区的视图; 本节我们用ByteBuffer举例; ByteBuffer有这么六个方法来创建对应的视图缓冲区: public abstract C...
  • u014783753
  • u014783753
  • 2015年02月09日 10:59
  • 517

NIO缓冲区的基本概念

NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。 Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。 其中Ch...
  • yalishadaa
  • yalishadaa
  • 2017年05月30日 11:41
  • 276

《Java NIO》:Channel and Buffer (通道和缓冲区)

《Java NIO》:Channel and Buffer (通道和缓冲区)从今天开始,自己将会了解下Java NIO的相关知识,以及会看下相关的类库源码。和往常自己学习新知识之前,自己都会阅读网...
  • u010412719
  • u010412719
  • 2016年10月08日 19:46
  • 846

Java NIO笔记(三):NIO Buffer(缓冲区)之进阶

本节讲解NIO缓冲区(Buffer)比较dichen
  • abc_key
  • abc_key
  • 2014年06月16日 01:10
  • 6489

Java NIO通俗编程之缓冲区内部细节状态变量position,limit,capacity(二)

一、介绍 我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果...
  • pfnie
  • pfnie
  • 2016年10月16日 12:01
  • 904

Java NIO笔记(二):NIO Buffer(缓冲区)之基础

在Java NIO中,Channel
  • abc_key
  • abc_key
  • 2014年06月11日 23:58
  • 10129

Java NIO(一)入门篇

概念 java.nio(java new IO),是jdk1.4 里提供的新api ,为所有的原始类型提供缓存支持。Sun 官方标榜的特性如下: 为所有的原始类型提供(Buffer)缓存支持。字符集编...
  • zhushuai1221
  • zhushuai1221
  • 2016年03月31日 13:52
  • 702

深入java NIO系列之缓冲区分析与源码解读(一)

数据从磁盘移动到进程的内存区域整个过程:进程发起read()系统调用,要求其缓冲区被填满,内核随即要求磁盘控制硬件发送命令,磁盘控制器直接将数据写入内核的内存缓冲区中,该过程通过DMA来完成,无需主C...
  • miliermili
  • miliermili
  • 2014年03月12日 22:48
  • 3329
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java NIO 翻译 建立新的缓冲区(1)
举报原因:
原因补充:

(最多只允许输入30个字)