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

  • 相关阅读:
    第十六章 Centos7下Docker安装GitLab
    第二十六章 Kubeadm方式搭建kubernetes高可用集群
    第二十五章 Kubernetes部署Promethus集群资源监控
    小程序遮罩层效果实现
    docker停止所有,删除容器命令
    sp欢迎页支持
    c#学习
    静态资源访问前缀
    webjar使用
    springboot静态资源配置原理
  • 原文地址:https://www.cnblogs.com/cgy-home/p/14525955.html
Copyright © 2011-2022 走看看