【Java八股文总结】之IO流
创始人
2024-01-31 21:34:26
0

文章目录

    • Java IO流
      • 一、IO基础知识
        • 1、字节流
        • 2、字符流
        • 3、字节缓冲流
        • 4、打印流
        • 5、随机访问流
        • 6、字节流和字符流的区别?
      • 二、IO设计模式
        • 1、装饰器模式
        • 2、适配器模式
          • Q:适配器模式和装饰器模式的区别?
        • 3、工厂模式
        • 4、观察者模式
      • 三、IO模型详解(★★★★★)
        • 1、什么是IO?
        • 2、常见的IO模型?
        • 3、Java中常见的3种IO模型
      • 三、序列化和反序列化
        • 1、什么是序列化?反序列化?
        • 2、如果不想进行序列化怎么办?
        • 3、使用到序列化和反序列化的场景?
        • 4、序列化协议对应TCP/IP 4层协议的哪一层?
        • 5、常见的序列化协议
        • 6、常见的序列化方式有?

Java IO流

一、IO基础知识

在这里插入图片描述
在这里插入图片描述

1、字节流

在这里插入图片描述
在这里插入图片描述

2、字符流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、字节缓冲流

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、打印流

在这里插入图片描述

5、随机访问流

在这里插入图片描述

6、字节流和字符流的区别?

①读写的时候 字节流是按字节读写,字符流按字符读写
字节流适合所有类型文件的数据传输,因为计算机字节(Byte)是电脑中表示信息含义的最小单位。字符流只能够处理纯文本数据,其他类型数据不行,但是字符流处理文本要比字节流处理文本要方便。
③在读写文件需要对内容按行处理,比如比较特定字符,处理某一行数据的时候一般会选择字符流。
④只是读写文件,和文件内容无关时,一般选择字节流。

二、IO设计模式

1、装饰器模式

在这里插入图片描述

2、适配器模式

在这里插入图片描述

Q:适配器模式和装饰器模式的区别?

在这里插入图片描述

3、工厂模式

在这里插入图片描述

4、观察者模式

在这里插入图片描述
在这里插入图片描述

三、IO模型详解(★★★★★)

在这里插入图片描述
同步和异步描述的是针对当前执行线程、或进程而言,发起IO调用后,当前线程或进程是否挂起等待操作系统的IO执行完成。
我们说一个IO执行是 同步执行 的,意思是 程序发起IO调用,当前线程或进程需要等待操作系统完成IO工作并告知进程已经完成,线程或进程才能继续往下执行其他既定指令
如果说一个IO执行是 异步执行 的,意思是 该动作是由当前线程或进程请求发起,且当前线程或进程不必等待操作系统IO的执行完毕,可直接继续往下执行其他既定指令。操作系统完成IO后,当前线程或进程会得到操作系统的通知

1、什么是IO?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、常见的IO模型?

UNIX系统下,IO模型一共有5种:同步阻塞I/O、同步非阻塞I/O、I/O多路复用、信号驱动I/O和异步I/O。

3、Java中常见的3种IO模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、序列化和反序列化

1、什么是序列化?反序列化?

在这里插入图片描述

2、如果不想进行序列化怎么办?

在这里插入图片描述

3、使用到序列化和反序列化的场景?

在这里插入图片描述

4、序列化协议对应TCP/IP 4层协议的哪一层?

应用层。

5、常见的序列化协议

如Kryo、Protobuf、ProtoStuff、hessian等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、常见的序列化方式有?

Java序列化方式有很多,常见的有3种:
在这里插入图片描述

  • Java 对象序列化: Java原生序列化方法即通过Java原生流(InputStream和OutputStream之间的转化)的方式进行转化,一般是对象输出流 ObjectOutputStream和对象输入流ObjectInputStream。
  • JSON序列化: 这个可能是我们最常用的序列化方式,JSON序列化的选择很多,一般会使用jackson包,通过ObjectMapper类来进行一些操作,比如将对象转化为byte数组或者将json串转化为对象。
  • ProtoBuff序列化: ProtocolBuffer是一种轻便高效的结构化数据存储格式,ProtoBuff序列化对象可以很大程度上将其压缩,可以大大减少数据传输大小,提高系统性能。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...