zoukankan      html  css  js  c++  java
  • 面试知识点总结之I/O流IO/BIO/NIO/AIO区别

    程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件

    1. 字节流主要操作byte类型数据,以bate数组为准,主要操作类 OutputStream, InputStream

      程序->字节流->文件    直接操作文件

    2. 字符流:字符流在操作时使用了缓冲区,通过缓冲区再去操作文件 缓冲区(理解为一种内存区域) 提升性能的

      程序->字符流->缓存->文件  数据先放在缓存,之后再从缓存写入文件

    本质区别:字节流是原生的操作,而字符流是经过处理后的操作;网络数据传输,磁盘数据保存所支持的数据类型只有’字节‘,而子盘中的数据必须先读取到内存后才能进行操作,而内存中会帮助我们把字节变为字符,字符更适合处理中文

    字符流,不关闭有可能保存在缓存中斌没有输出目标源

    转换流

    OutputStreamWriter:字符流->字节流

    InputStreamReader:字节流->字符流

    IO/BIO/NIO/AIO区别:

    BIO:同步且阻塞,服务器实现模式,即一个链接一个线程,客户端有链接请求时启动一个线程处理,如果连接不做事,造成不必要的开销,当然可以通过线程池改善;

    NIO:同步非阻塞,即一个请求一个线程,客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理

    AIO:异步非阻塞,一个有效请求一个线程,客户端的I/O请求都是OS先完成了再通知服务器应用去启动线程处理

    // TODO

  • 相关阅读:
    富数据控件 DetailsView 和 FormView
    富数据控件 LstView(模版、分组)
    ADO.NET 基础(事务、通用的数据工厂)
    文件和流(使用流读写文件)
    ASP.NET 状态管理(Application)
    根据定制的 XML 文件进行随机抽取节
    缓存(缓存依赖)
    文件浏览器
    ASP.NET 状态管理(cookie、Session)
    使用HtmlControl动态创建一个表格
  • 原文地址:https://www.cnblogs.com/cgy-home/p/14525955.html
Copyright © 2011-2022 走看看