码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java八股文总结】之IO流


    文章目录

      • 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序列化对象可以很大程度上将其压缩,可以大大减少数据传输大小,提高系统性能。
  • 相关阅读:
    Go 语言中的反射
    hive数据库操作,hive函数,FineBI可视化操作
    目标检测算法改进系列之Backbone替换为RIFormer
    flutter windows 安装或者环境相关问题
    ubuntu 设置和取消代理
    SpringBoot-RabbitMQ
    HTTP面试题总结
    软件流程和管理(一):预期的学习目标
    JS中的BOM
    天融信上网行为管理系统设置wifi短信验证流程
  • 原文地址:https://blog.csdn.net/qq_46111316/article/details/127936911
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号