DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > MySQL > 常见问题

缓存

20.2 NIO的基础知识

NIO系统构建于两个基础术语之上:缓存和通道。缓存用于容纳数据,通道表示打开的到I/O设备(例如文件或套接字)的连接。通常,为了使用NIO系统,需要获取用于连接I/O设备的通道以及用于容纳数据的缓存。然后操作缓存,根据需要输入或输出数据。接下来将更加详细地分析缓存和通道。

20.2.1 缓存

缓存是在java.nio包中定义的。所有缓存都是Buffer类的子类,Buffer类定义了对所有缓存都通用的核心功能:当前位置、界限和容量。当前位置是缓存中下一次发生读取和写入操作的索引,当前位置通过大多数读或写操作向前推进。界限是缓存中最后一个有效位置之后下一个位置的索引值。容量是缓存能够容纳的元素的数量。通常界限等于缓存的容量。Buffer类还支持标记和重置。Buffer类定义了一些方法,表20-2显示了这些方法。

表20-2 Buffer类定义的方法

 

下面这些特定的缓存类派生自Buffer,这些类的名称暗含了它们所能容纳的数据的类型:

 

MappedByteBuffer是ByteBuffer的子类,用于将文件映射到缓存。

所有缓存类都提供了不同的get()和put()方法,使用这些方法可以从缓存获取数据或将数据放入到缓存中(当然,如果缓存是只读的,就不能使用put()操作)。表20-3显示了ByteBuffer类定义的get()和put()方法。其他缓存类具有类似的方法。所有缓存类都支持用于执行各种缓存操作的方法。例如,可以使用allocate()方法手动分配缓存,使用wrap()方法在缓存中封装数组,使用slice()方法创建缓存的子序列。

表20-3 ByteBuffer类定义的get()和put()方法

 

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号