【Java八股文总结】之IO流
创始人
2024-02-01 01:16:43

文章目录

    • 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序列化对象可以很大程度上将其压缩,可以大大减少数据传输大小,提高系统性能。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
南美洲有哪些国家 南美洲一共有... 南美洲是南亚美利加洲的简称,位于西半球,南美洲大部分地区位于南半球,南美洲东临大西洋,西临太平洋,南...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
南美洲有哪些国家 南美洲一共有... 南美洲是南亚美利加洲的简称,位于西半球,南美洲大部分地区位于南半球,南美洲东临大西洋,西临太平洋,南...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...