NIO
文章平均质量分 63
sam-fat-chang
这个作者很懒,什么都没留下…
展开
-
java NIO(四) 缓冲区——大端字节书序 小端字节顺序
处理器是大端还是小端关键看处理器新片,不同的厂商可能不同,intel遵循小端字节顺序。大端字节顺序:小端字节顺序:java中java.nio.ByteOrder对象用来描述和判断jvm运行的处理器的字节顺序。原创 2015-02-05 17:24:01 · 1763 阅读 · 0 评论 -
java NIO(九) 缓冲区——字节缓冲区&&直接缓冲区
字节缓冲区,顾名思义“缓冲”对象是字节,但是字节缓冲区又是一个特殊的缓冲区,因为字节是操作系统及其IO设备使用的基本数据类型。字节缓冲区和其他缓冲区最明显的区别在于,他们可以成为通道所执行的IO的源头和目标。通道只接收ByteBuffer作为参数。直接缓冲区:在jvm中,字节数组可能不会在内存中连续存储,或者无用存储单元收集可能随时对其进行移动。在java中,数组是对象,而数据存储在对原创 2015-02-09 12:29:01 · 2312 阅读 · 1 评论 -
java NIO(八) 缓冲区——视图缓冲区实例
我们通过一个实例BufferCharView来说明视图缓冲区和原始缓冲区的关系;我们创建一个原始的字节缓冲区,存入“Hi!”;在创建这个字节缓冲区的一个字符缓冲区视图,打印连个缓冲区的position、limit、capacity和内容进行观察:package com.z;import java.nio.Buffer;import java.nio.ByteBuffer;原创 2015-02-09 11:22:56 · 1368 阅读 · 1 评论 -
java NIO(五) 缓冲区——创建缓冲区
NIO有两种方式创建缓冲区:分配、包装我们以CharBuffer为例进行说明:一、分配方式:allocate下面是java6对CharBuffer的allocate的定义:public static CharBuffer allocate(int capacity)分配新的字符缓冲区。 新缓冲区的位置将为零,其界限将为其容量,其标记是未定义的。它将具有一个底层实现数组,且其数组偏原创 2015-02-09 09:43:06 · 1074 阅读 · 0 评论 -
java NIO(六) 缓冲区——复制缓冲区
当一个管理其他缓冲区所包含的数据元素的缓冲区被创建时,这个缓冲区被称为视图缓冲区。大多说的视图缓冲区都是ByteBuffer的视图。本章节的“复制缓冲区”和下一个章节将要讲解的“视图缓冲区”很有联系,我们要注意。本章节我们还是以CharBuffer为例,先介绍CharBuffer类中定义的几个复制缓冲区的方法:public abstract CharBuffer asReadOnl原创 2015-02-09 10:13:28 · 644 阅读 · 0 评论 -
java NIO(七) 缓冲区——视图缓冲区
正如上一章节所说的,大多数的视图缓冲区都是字节缓冲区的视图;本节我们用ByteBuffer举例;ByteBuffer有这么六个方法来创建对应的视图缓冲区:public abstract CharBuffer asCharBuffer()创建此字节缓冲区的视图,作为 char 缓冲区。 新缓冲区的内容将从此缓冲区的当前位置开始。此缓冲区内容的更改在新缓冲区中是可见的,反之亦然;这两个缓原创 2015-02-09 10:59:31 · 930 阅读 · 0 评论 -
java NIO(一) 缓冲区
java NIO为什么要使用,等到NIO所有章节结束后会给出,以及NIO的使用条件和执行效率。目前先不提。提到NIO,有三个概念很重要:缓冲区、通道和选择器。前几章我们讲解缓冲区。顾名思义,缓冲区指的是缓冲数据的区域或者存储数据的区域,缓冲区在JAVA中的抽象基类是:java.nio.Buffer。Buffer将数据的存储和存储的属性进行封装,为我们提供了缓冲区的概念,根据换出原创 2015-02-05 14:18:17 · 643 阅读 · 0 评论 -
java NIO(二) 缓冲区
java.nio.Buffer的方法摘要如下:插句题外话,通过观察上图可以发现两点,1、很多方法采用了“级联调用”的类设计方法,2、没有实现诸如get、put的方法,因为这些方法在基类中无法确定,因此在子类中实现。我们讲解一下:flip()方法——反转filip()方法的实际执行逻辑是:buffer.limit(buffer.position()).position(0原创 2015-02-05 14:37:35 · 544 阅读 · 0 评论 -
java NIO(三) 缓冲区
根据上一章节:java NIO(二) 缓冲区的介绍,我们给出实际使用的例子:package com.z;import java.nio.CharBuffer;public class BufferFillPrint { private static int index = 0; private static String[] strings = { "A ", "C原创 2015-02-05 14:50:25 · 498 阅读 · 0 评论 -
java NIO(十) 缓冲区——compact方法介绍
注意java6帮助文档对compact方法的介绍compactpublic abstract ByteBuffer compact()压缩此缓冲区(可选操作)。 将缓冲区的当前位置和界限之间的字节(如果有)复制到缓冲区的开始处。即将索引 p = position() 处的字节复制到索引 0 处,将索引 p + 1 处的字节复制到索引 1 处,依此类推,直到将索引 limit() - 1 处原创 2015-02-27 11:07:21 · 8173 阅读 · 1 评论