zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Java NIO核心组件简介详解编程语言

JAVAnio组件编程语言 详解 简介 核心
2023-06-13 09:20:45 时间

整个NIO体系包含的类远远不止这几个,但是在笔者看来Channels,Buffer和Selector组成了这个核心的API。其他的一些组件,比如Pipe和FileLock仅仅只作为上述三个的负责类。因此在概览这一节中,会重点关注这三个概念。其他的组件会在各自的部分单独介绍。

通道和缓冲区(Channels and Buffers)

通常来说NIO中的所有IO都是从Channel开始的。Channel和流有点类似。通过Channel,我们即可以从Channel把数据写到Buffer中,也可以把数据冲Buffer写入到Channel。

有很多的Channel,Buffer类型。下面列举了主要的几种:


正如你看到的,这些channel基于于UDP和TCP的网络IO,以及文件IO。 和这些类一起的还有其他一些比较有趣的接口,在本节中暂时不多介绍。为了简洁起见,我们会在必要的时候引入这些概念。 下面是核心的Buffer实现类的列表:


这些Buffer涵盖了可以通过IO操作的基础类型:byte,short,int,long,float,double以及characters. NIO实际上还包含一种MappedBytesBuffer,一般用于和内存映射的文件。

选择器(Selectors)

选择器允许单线程操作多个通道。如果你的程序中有大量的链接,同时每个链接的IO带宽不高的话,这个特性将会非常有帮助。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/15755.html

c