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

     

  • 相关阅读:
    Linux 设置秘钥登录(SSH免密远程登录)
    maven profile动态选择配置文件
    PKU 1521 Entropy(简单哈弗曼树_水过)
    POJ 3253 Fence Repair(简单哈弗曼树_水过)
    XDU 1001 又是苹果(状态压缩)
    PKU 3318 Matrix Multiplication(神奇的输入)
    PKU 3318 Matrix Multiplication(随机化算法||状态压缩)
    PKU 2531 Network Saboteur(dfs+剪枝||随机化算法)
    PKU 1035 Spell checker(Vector+String应用)
    PKU 2002 Squares(二维点哈希+平方求余法+链地址法)
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14954376.html
Copyright © 2011-2022 走看看