文档章节

博为峰Java技术题 ——JavaSE Java NIO Ⅳ

博为峰教研组
 博为峰教研组
发布于 2016/12/09 16:22
字数 529
阅读 13
收藏 0

博为峰小博老师:

[缓冲区Buffer]

一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。尽管缓冲区作用于它们存储的原始数据类型,但缓冲区十分倾向于处理字节。非字节缓冲区可以在后台执行从字节或到字节的转换,这取决于缓冲区是如何创建的。

缓冲区的工作与通道紧密联系。通道是 I/O 传输发生时通过的入口,而缓冲区是这些数据传输的来源或目标。对于离开缓冲区的传输,您想传递出去的数据被置于一个缓冲区,被传送到通道。对于传回缓冲区的传输,一个通道将数据放置在您所提供的缓冲区中。这种在协同对象(通常是您所写的对象以及一到多个 Channel 对象)之间进行的缓冲区数据传递是高效数据处理的关键。

以下是一个新创建的ByteBuffer:

位置被设为 0,而且容量和上界被设为 10,刚好经过缓冲区能够容纳的最后一个字节。标记最初未定义。容量是固定的,但另外的三个属性可以在使用缓冲区时改变。

其中的四个属性的含义分别如下:

l 容量(Capacity):缓冲区能够容纳的数据元素的最大数量。这一个容量在缓冲区创建时被设定,并且永远不能改变。

l 上界(Limit):缓冲区的第一个不能被读或写的元素。或者说,缓冲区中现存元素的计数。

l 位置(Position):下一个要被读或写的元素的索引。位置会自动由相应的 get( )和 put( )函数更新。

l 标记(Mark):下一个要被读或写的元素的索引。位置会自动由相应的 get( )和 put( )函数更新。

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
win10系统JDK8安装环境配置教程

本节博主主要介绍jdk8的安装,以及一些注意事项,同时博主也需要留着配置路径自己以后使用。 安装步骤: (一)下载JDK官网地址:http://www.oracle.com/technetwork/java/javase/downloads...

em_aaron
08/04
0
0
Java SE 8u20/7u67 发布

Java SE 8u20 发布了,此版本包括 JDK 8 的新特性改进,安全更新和性能提升。同时还包括新的 MSI 企业 JRE 安装器,新 高级管理工作台和 JMC 5.4。 下载地址: http://www.oracle.com/techne...

oschina
2014/09/28
2.1K
3
阿里巴巴菜鸟Java一面11个问题,你会几个呢?

近日,w3cschool app开发者头条上分享了阿里菜鸟Java程序员一些面试题。 这吸引了不少程序员小伙伴们的注意。 在分享阿里菜鸟Java程序员面经前,来看下Java面试一些面试经验分享: 0、Java高...

W3Cschool
04/03
0
0
jps命令:查看Java进程等详细信息

jps是java自带的查看java进程的命令,通过这个命令可以查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等。 jps -help 可以查看命令用法。 -q: 只显示VM 标示,不显示jar,cla...

java技术栈
2017/11/14
0
0
Android 和 Java 之间不得不说的事

最近整个Java阵营都陷于一场讨论Oracle和Google之间关于Android平台的专利诉讼官司的混战中。来自“外刊IT评论”的最新翻译文章向您解释最近 Oracle 想要告 Google 的 Android 系统的原因。该...

鉴客
2010/09/01
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

linux脚本中父shell与子shell 执行的几种方式

本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell 1. source filename or . filename 不创建sub...

问题终结者
17分钟前
1
0
安装jdk和Tomcat

12月12日任务 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat Tomcat介绍 Tomcat是apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由apache、Sun和其他一些...

robertt15
18分钟前
3
0
Beetl 免费视频

来自 https://my.oschina.net/gking?q=Beetl ,Beetl终于有人录制视频了 项目git地址:https://gitee.com/gavink/beetl-blog 视频地址:下载下来会更清晰,视频比较长,可使用倍速看 百度网盘...

闲大赋
30分钟前
0
0
isEmpty和null的区别

isEmpty和null的区别: 1.一个是对象为空(IsNull),一个是值为空(IsEmpty) 2.IsNull指任务类型变量是否为空包括对象类型的变量。 IsNull函数: 功能:返回Boolean的值,指明表达是否不包...

DemonsI
56分钟前
3
0
Centos7 安装mysql与php

https://blog.csdn.net/qq_36431213/article/details/79576025 官网下载安装mysql-server 依次使用下面三个命令安装 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.r......

Yao--靠自己
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部