zoukankan      html  css  js  c++  java
  • JavaSE:NIO

    1.  Buffer缓冲区概述

        <1>作用:缓冲区,用来存放具体要被传输的数据,比如文件、socket等。

                    在NIO中,数据被装入Buffer后,再通过通道(Channel)进行传输

        <2>Buffer就是一个数组,用来保存不同数据类型的数据

            在 NIO中,所有的缓冲区类型,都继承于抽象类 Buffer, 最常用的就是 ByteBuffer。

                         对于 Java中的基本类型,基本都有一个具体的 Buffer类型与之对应,它们之间的继承关系如下:

          ByteBuffer:(储存)字节数据(到缓冲区)

          ShortBuffer:(储存)字符串数据(到缓冲区)

             CharBuffer:(储存)字符数据(到缓冲区)

           IntBuffer:  (储存)整数数据(到缓冲区)

           LongBuffer: (储存)长整型数据(到缓冲区)

           DoubleBuffer:   (储存) 小数 (到缓冲区)

           FloatBuffer:  (储存)小数 (到缓冲区)

          对于Java中的基本数据类型,都有一个Buffer类型与之相对应,最常用的自然是ByteBuffer类 (二进制数据)

    2.  ByteBuffer的创建方式

          代码示例

            <1>  在堆中创建缓冲区:allocate(int capacity)

            <2>  在系统内存创建缓冲区:allocateDirect(int capacity)

            <3>  通过普通数组创建缓冲区:wrap(byte[] arr)

    import java.nio.ByteBuffer;
    
    public class Demo01Buffer创建方式 {
    
        public static void main(String[] args) {
            
            // <1>第一种创建方式:在堆中创建缓冲区 - allocate (int capacity)
            ByteBuffer buffer1 = ByteBuffer.allocate(10);
    
            // <2>第二种创建方式:在系统内存创建缓冲区: allocateDirect(int capacity)
            ByteBuffer buffer2 = ByteBuffer.allocateDirect(10);
    
            // <3>第三种创建方式:通过普通数组,创建缓冲区: wrap(byte[] arr)
            byte[] arr = {97,98,99};
            ByteBuffer buffer3 = ByteBuffer.wrap(arr); 
        }
    }

     

  • 相关阅读:
    [JavaScript]继续学习DOM事件模型
    [面试]作答整理一些面试题
    [JavaScript]使用jQuery实现无缝轮播
    [JavaScript]使用CSS + jQuery 实现自动轮播图
    [JavaScript]从DOM到jQuery(2)
    [JavaScript]从DOM到jQuery(1)
    [JavaScript]JavaScript中的函数(2)
    [JavaScript]JavaScript中的函数(1)
    [JavaScript]JavaScript中的Array
    React练习 7 :点击div,显示innerHTML
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14954376.html
Copyright © 2011-2022 走看看