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); 
        }
    }

     

  • 相关阅读:
    《就这》
    《我傻了》
    nginx配置本地https方法
    idea插件开发——Generate Resource SQL
    Java本地命令执行
    自定义类加载器和UrlClassLoader
    类加载器学习
    IO流学习
    Java
    static关键字
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14954376.html
Copyright © 2011-2022 走看看