简识JavaINO(一)

本文介绍了Java NIO(非阻塞IO)的概念,它提供了不同于传统IO的工作方式。主要内容包括NIO的核心组件:通道、缓冲区和选择器。详细讨论了缓冲区的分配、存取、标记方法、直接缓存与非直接缓存的区别,以及通道的类型和复制方式。同时,阐述了直接缓冲区的优势和使用场景,强调在性能关键的代码中进行显式缓冲区管理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaINO

  • Java New IO 也叫非阻塞式IO None Blocking IO
  • 是1个全新的、 JDK 1.4后提供的 IO API

2. 作用

  • 提供了与标准IO不同的IO工作方式
  • 可替代 标准Java IOIO API

3. 新特性

对比于 Java IONIO具备的新特性如下

在这里插入图片描述

Java NIO和IO的主要区别

IO流 NIO流
面向字节流 面向缓存
阻塞IO(Blocking IO) 非阻塞(Non Blocking IO)
(无) 选择器(Selectors)

4. 核心组件

Java NIO的核心组件 包括:

  • 通道(Channel
  • 缓冲区(Buffer
  • 选择器(Selectors

5.NIO_Buffer_分配和存取

  • 缓存中的三个重要参数
/**
    * 测试缓存分配
    */
   @Test

   public void test1(){
       // capacity 分配缓存大小
       int capacity = 1024;
       ByteBuffer buffer = ByteBuffer.allocate(capacity);

       System.out.println("capacity(缓存大小):" + buffer.capacity());
       System.out.println("limit(限制):" + buffer.limit());
       System.out.println("position(起始位置):" + buffer.position());

       System.out.println("--------------------------------------------------------");
       // 向缓存中存数据 put();
       buffer.put("hello world!".getBytes());

       System.out.println("capacity(缓存大小):" + buffer.capacity());
       System.out.println("limit(限制):" + buffer.limit());
       System.out.println("position(起始位置):" + buffer.position());

       System.out.println("--------------------------------------------------------");

       //flip() 方法切换到读的状态
       buffer.flip();

       System.out.println("capacity(缓存大小):" + buffer.capacity());
       System.out.println("limit(限制):" + buffer.limit());
       System.out.println("position(起始位置):" + buffer.position());
       System.out.println("--------------------------------------------------------");

       // 从缓存中取数据 get()
       //byte b =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值