• Java I/O流


    1.流

      流是一组有序的数据序列,I/O流提供了一条通道程序,我们使用这个通道可以把源中的字节输送到目的地。

    我们经常使用I/O流与磁盘的文件打交道,但是程序的源和目的地可以使内存,键盘,鼠标等等。

     输入

     

    输出

    硬盘:File

    网络:Socket

    2.位、字节、字符的区别

    位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

    字节(byte):是计算机中数据处理的基本单位,习惯上用大写  B  来表示,1B(byte,字节)= 8bit(位)。

    字符:是指计算机中使用的字母、数字、字和符号。

    不同编码中,字符和字节的对应关系:

    ASCIIS码: 1个英文字母(不分大小写)= 1个字节的空间

                        1个中文汉字 = 2个字节的空间

                        1个ASCII码 = 一个字节

    UTF-8编码:1个英文字符 = 1个字节

                         英文标点  = 1个字节

                         1个中文(含繁体) = 3个字节

                         中文标点 = 3个字节

    Unicode编码:1个英文字符 = 2个字节

                         英文标点  = 2个字节

                         1个中文(含繁体) = 2个字节

                         中文标点 = 2个字节

    3.字节流和字符流区别

      按照操作的数据单元不同。  

      字符流在操作的时候会使用到缓存,而字节流是直接操作文件本身。 

    4.IO模型:BIO、NIO、AIO

      4.1.同步和异步,阻塞和非阻塞,并发和并行

      同步异步区别: 需不需要等待返回结果。同步实时性比较好,异步的并发性能比较好。

      同步:发出请求后,需要等待返回结果,才能进行其他操作。例:打电话

      异步:发出请求后,不需要等待返回结果,而是去做其他事情,等返回结果后会通知(轮询、通知、回调)调用者,再进行相应处理。例:发短信

      阻塞和非阻塞区别:会不会阻塞当前线程。相对CPU消耗,CPU需不需等待慢操作。

      阻塞:当前线程会被挂起或等待,得到结果之后才会被唤醒继续执行。

      非阻塞:在调用结果返回之前,不会阻塞当前线程。

      并发和并行:并发是一个CUP一段时间内处理多个线程,并行是多个CUP同时处理多个线程。区别:是否同时。

     4.2.BIO、NIO、AIO的区别

      BIO:同步阻塞

      NIO:同步非阻塞、多路复用

      AIO:异步非阻塞,基于事件和回调机制实现

  • 相关阅读:
    C#--web中上传图片与浏览
    win通过ssh访问virtualbox虚拟中的debian
    【转】win10中下载安装mysql5.7
    [转发]centos7利用crontab定时检测杀死cpu使用率超过80%的进程
    MySQL 重要参数 innodb_flush_log_at_trx_commit 和 sync_binlog
    查询正在执行的sql语句
    php图片等比例缩放
    excel 导入 sqlserver 字符串被截取为255长度解决方案
    查询阻塞的sql
    centos7安装mariadb10遇到的问题解决
  • 原文地址:https://www.cnblogs.com/wenxiangchen/p/11095917.html
Copyright © 2020-2023  润新知