NIO堵塞

本文介绍了Java的NIO(非阻塞IO)特性,对比了NIO与BIO的区别,强调了NIO在等待过程中的非阻塞优势。并详细讲述了NIO的三大核心组件——缓冲区、通道和选择器,以及如何创建缓冲区、添加和读取数据的操作。
摘要由CSDN通过智能技术生成
NIO概述
  • NIO和BIO
    NIO全称为: No Blocking IO,是非阻塞型IO
    BIO全称为:Blocking IO,是阻塞型IO
  • 阻塞IO的弊端
    在等待的过程中,什么事也做不了
  • 非阻塞IO的好处
    不需要一直等待,当一切就绪了再去做
NIO和BIO的区别
  • 区别一
    BIO是堵塞的,NIO是非堵塞的
  • 区别二
    BIO是面向流的,NIO是面向缓冲区的
    BIO中数据传输是单向的,NIO中的缓冲区是双向的
NIO的三大模板
  1. 缓冲区 :用来存储数据
  2. 通道 :用来建立连接和传输数据
  3. 选择器:监视通道的状态
NIO创建缓冲区对象
方法名 说明
static ByteBuffer allocate(长度) 创键byte类型的缓冲区
static ByteBuffer wrap(byte[] array) 创键一个有内容的byte类型缓冲区
NIO缓冲区添加数据

在这里插入图片描述

public static void main(String[] args) {
   
        /**
         *        int position()		  当前要操作的索引
         *        int limit() 		  最多能操作到哪个索引
         *        int capacity()		  缓冲区的总长度
         *        remaining()
         *        hasRemaining()
         */
        //创建一个缓冲区长度为50
        ByteBuffer byteBuffer = ByteBuffer.allocate(50);
        System.out.println(byteBuffer.position());//0
        System.out.println(byteBuffer.limit());//10
        System.out.println(byteBuffer.capacity());//10


        //put(byte b)一次添加一个字节,也可以添加一个字节数组
        byteBuffer.put((byte) 97)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值