80-10-010-原理-Java NIO-简介

Posted 九师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了80-10-010-原理-Java NIO-简介相关的知识,希望对你有一定的参考价值。

1.概述

java . io中最为核心的一个概念是流(Stream) ,面向流的编程。Java中,-个流要么是输入流,要么是输出流,不可能同时既是输入流又是输出流。
​ java. nio中拥有3个核心概念: Selector, Channel与Buffer. 在java.nio中,我们是面向块(block) 或是缓冲区(buffer) 编程的。Buffer本身就是一块内存, 底层实现上,它实际上是个数组。数据的读、写都是通过Buffer来实现的。
​ 除了数组之外,Buffer还提供了对于数据的结构化访问方式,并且可以追踪到系统的读写过程。
Java中的8种原生数据类型都有各自对应的Buffer类型,如IntBuffer, LongBuffer , ByteBuffer 及CharBuffer等等。
​ Channel指的是可以向其写入数据或是从中读取数据的对象,它类似于java . io中的Stream。所有数据的读写都是通过Buffer来进行的,永远不会出现直接向Channe1写入数据的情况, 或是直接从Channe1读取数据的情况。
​ 与Stream不同的是,Channe1是双向的, - 个流只可能是InputStream或是0utputStream, Channel打开后则可以进行读取、写入或是读写。
​ 由于channel是双向的,因此它能更好地反映出底层操作系

以上是关于80-10-010-原理-Java NIO-简介的主要内容,如果未能解决你的问题,请参考以下文章

NIO的原理和文件读入读出及图片拷贝的使用

java之NIO简介

Java-NIO:简介

80-30-040-原理-React模式-简介2

JAVA NIO原理剖析

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理