文章目录

  • java 中 IO 流分为几种?
  • BIO、NIO、AIO 有什么区别?

java 中 IO 流分为几种?

(1)按流划分,可以分为输入流和输出流;

(2)按单位划分,可以分为字节流和字符流;

字节流:inputStream、outputStream;

字符流:reader、writer;

BIO、NIO、AIO 有什么区别?

(1)同步阻塞BIO

一个连接一个线程。

JDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行

(2)同步非阻塞NIO

NIO主要是想解决BIO的大并发问题BIO是每一个请求分配一个线程,当请求过多时,每个线程占用一定的内存空间,服务器瘫痪了。

JDK1.4开始支持NIO,适用于连接数目多且连接比较短的架构,比如聊天服务器,并发局限于应用中。

一个请求一个线程。

(3)异步非阻塞AIO

一个有效请求一个线程。

JDK1.7开始支持AIO,适用于连接数目多且连接比较长的结构,比如相册服务器,充分调用OS参与并发操作。

java 中 IO 的流的种类及BIO、NIO、AIO 有什么区别?相关推荐

  1. Java常见面试题:BIO,NIO,AIO 有什么区别?

    Java 中 IO 流分为几种? 按功能来分:输入流(input).输出流(output). 按类型来分:字节流和字符流. 字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流 ...

  2. java io流区别_Java中IO流的分类和BIO,NIO,AIO的区别

    到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...

  3. Java中IO流的分类和BIO,NIO,AIO的区别

    到底什么是IO 我们常说的IO,指的是文件的输入和输出,但是在操作系统层面是如何定义IO的呢?到底什么样的过程可以叫做是一次IO呢? 拿一次磁盘文件读取为例,我们要读取的文件是存储在磁盘上的,我们的目 ...

  4. IO之 java中BIO NIO AIO原理、区别以及应用

    在本篇文章中,我们主要介绍一下java中的BIO NIO AIO,重点是NIO 先说一下同步.异步.阻塞和非阻塞. 简单来讲,同步和异步是针对内核和应用程序之间的交互而言的:阻塞和非阻塞其实是针对进程 ...

  5. java中io各种流的关闭顺序

    关闭该流并释放与之关联的所有资源.在关闭该流后,再调用 read().ready().mark().reset() 或 skip() 将抛出 IOException.关闭以前关闭的流无效. publi ...

  6. Java IO(BIO, NIO, AIO) 总结

    文章转载自:JavaGuide 目录 BIO,NIO,AIO 总结 同步与异步 阻塞和非阻塞 1. BIO (Blocking I/O) 1.1 传统 BIO 1.2 伪异步 IO 1.3 代码示例 ...

  7. Java中IO流体系

    转载: https://mp.weixin.qq.com/s?__biz=MzA5NzgzODI5NA==&mid=2454030958&idx=1&sn=df27aadb92 ...

  8. Java中IO流的总结

    有关Java中IO流总结图 流分类 按方向分 输入流 输出流 按单位分 字节流 字符流 按功能分 节点流 处理流(过滤流) 其他 所有的流继承与这四类流:InputSteam.OutputStream ...

  9. Java中IO流,输入输出流概述与总结(转载自别先生文章)

    Java中IO流,输入输出流概述与总结 总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

最新文章

  1. linux下查看GPU版本和详情信息 CUDA版本信息 anaconda版本信息
  2. iosetup mysql_InnoDB: Error: io_setup() failed with EAGAIN after 5 attempt
  3. 结合hello world探讨gcc编译程序的过程
  4. 手动打开和关闭windows的相关服务
  5. sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...
  6. bzoj 2905 背单词
  7. java 方法 示例_Java ArrayDeque带有示例的removeFirstOccurrence()方法
  8. 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
  9. 如何实现跨项目代码复用
  10. 斯坦福大学自然语言处理第二课“文本处理基础(Basic Text Processing)”
  11. 计算机的品牌和发展历程,世界著名电脑品牌苹果的发展历程
  12. 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
  13. 机器学习(四):决策树绘画(基础篇)
  14. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)...
  15. c++primer plus 第六版 第六章重点内容总结 以及编程题答案
  16. 终极WordPress页面构建器:WPBakery
  17. vue跳转链接(新页签)
  18. android虚拟内存管理,安卓手机虚拟内存软件下载(一招教你扩大手机虚拟内存)...
  19. 记录一下Vue中的created函数所踩到的坑(回调函数不立即生效)
  20. 纪中20日c组模拟赛T1 2121. 简单游戏

热门文章

  1. vue3+ant design vue+ts实战【ant-design-vue组件库引入】
  2. Android开发者编写自己的API接口(上)
  3. 网络安全关于Windows下BAT脚本使用
  4. Linux TTY基本概念之ttys*、tty*、ttyS*、console理解
  5. QT——开发入门简介
  6. GNSS原理与应用(五)——GPS卫星信号
  7. std::cerr与std::cout区别
  8. Atomic类如何保证原子性
  9. Python基础教程:拼接字符串的7种方法
  10. StorageEngine