IO流、IO模型

news2024/12/23 19:09:32

一、IO流分类

1.按照流的方向:输出流和输入流
2.按照流的角色:节点流和处理流
3.按照操作单元:字节流和字符流

二、基类

1.字节输入流和输出流: InputStream、OutputStream
2.字符输入流和输出流:Reader、Writer

三、为什么分为字节流和字符流?

1.字符流是由 Java 虚拟机将字节转换得到的,这个过程还算是比较耗时。
2.如果我们不知道编码类型就很容易出现乱码问题。

源文件执行javac命令后获取java字节码文件,执行Java命令之后会创建Java虚拟机的组成部分

四、Java 中 3 种常见 IO 模型

1.BIO (Blocking I/O)——同步阻塞

同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到内核把数据拷贝到用户空间。
在这里插入图片描述

2.NIO (Non-blocking/New I/O)——同步非阻塞

I/O 多路复用模型

IO 多路复用模型中,线程首先发起 select 调用,询问内核数据是否准备就绪,等内核把数据准备好了,用户线程再发起 read 调用。
在这里插入图片描述

3.AIO (Asynchronous I/O)——异步

AIO 也就是 NIO 2,异步 IO 模型。

异步 IO 是基于事件和回调机制实现的,也就是应用操作之后会直接返回,不会堵塞在那里,当后台处理完成,操作系统会通知相应的线程进行后续的操作。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

连锁门店运营管理系统有哪些?应该如何选择?

连锁门店运营管理过程中会面临很多难点,比如不同门店之间很难做到统一管理、销售数据无法实时同步、库存调拨效率低,很容易出现库存不足或过剩的情况... 选择一套合适的连锁门店管理系统,连锁店可以实时获得各个门店的销售、库存和其他关键数…

安达发|APS项目对企业有哪些要求?

尽管APS技术存在相当多的优点,但可以为企业带来其他IT技术以往所不及的收益和管理助力;但这是以APS项目成功部署并发挥作用为前提的。由于APS项目的特性要求较高,目前能够将APS技术运用于运筹和生产活动的企业还非常少。原因有很多&#xff0…

【CNN记录】pytorch中BatchNorm2d

torch.nn.BatchNorm2d(num_features, eps1e-05, momentum0.1, affineTrue, track_running_statsTrue, deviceNone, dtypeNone) 功能:对输入的四维数组进行批量标准化处理(归一化) 计算公式如下: 对于所有的batch中样本的同一个ch…

贯穿AI生命周期各阶段的道德问题:数据标注部分

随着AI在市场上得到更广泛的采用并被作为各种用例中的工具实现,更多的挑战也应势而生。AI项目遇到了一个长期的关键问题,即合乎道德的AI以及数据中的偏见处理。在AI发展初期,这个问题并不明显。 数据偏见是指数据集中某个元素的代表权重过大或…

Sui开发者网络、测试网和主网的异同之处

Sui在主网正式上线前,发布了两波测试网以及独立的开发者网络供开发者和项目方进行测试。主网与这些网络在部分功能和参数方面有些许不同,本文盘点了这三个网络在功能和参数方面的异同。查看网络信息及更新计划 验证节点集 Sui网络由一组独立的验证节点…

apk反编译检测代码是否混淆

把 apk 当成 zip 并解压,得到 classes.dex 文件(有时可能不止一个 dex 文件,但文 件名大多类似) 使用 dex2jar 执行如下命令: dex2jar.bat classes.dex 文件路径 得到 classes.dex.jar 然后使用 jd-gui 打开 jar 文件&…

CAN总线

目录 1. 总体概述  1.1 基本概念 1.2 通讯方式 1.3 为什么使用CAN? 1.4 CAN的协议及组成 2. 上帝视角看CAN的通讯过程 2.1 数据传输原理实现 2.3 通信的整个过程 2.2.1 空闲状态 2.2.2 开始数据传输 2.2.3 仲裁机制 2.2.4 位时序 2.2.5 一次数据传输的例子 3.…

【C/C++ 力扣leetcode】4道简单题

文章目录 前言一、寻找正序数组的中位数中位数的概念C语言版C版 二、寻找无序数组的中位数冒泡排序的概念C语言版C版 三、整数反转代码实现原理详解 四、字符串转整数原理详解代码实现 总结 前言 刷题之——Leetcode道简单题,通过这4道简单题,C/C有新的…

MachineLearningWu_12_BuildNNUsingNumpyOrTF

x.1 咖啡机的例子 我们以煮咖啡为例子来做一个判断煮的咖啡是否符合自己预期的实验。假设煮咖啡的好坏有两个因素决定,温度和煮的时间,图中x表示煮的咖啡很好,o表示煮的咖啡不好,我们根据这个实验来建模,并将模型通过…

简述DHCP服务器获取IP地址的过程

简述DHCP服务器获取IP地址的过程 如何搭建DHCP服务 要在Linux系统上搭建DHCP服务器,你可以按照以下步骤进行操作: 1.安装DHCP服务器软件包: sudo yum install dhcp2.配置DHCP服务器: 打开/etc/dhcp/dhcpd.conf文件&#xff0c…

前向传播之——得分函数

前向传播之-得分函数 1.1 得分函数: 剧透:深度学习必备的两个大知识点分别是前向传播和反向传播啦,这里节课我们会先着手把前方传播的所涉及的所有知识点搞定!我相信这部分对于咱们即便没有什么基础的同学来说也是很容易理解的。 得分函数&#xff1a…

Vue从小白到入门

文章目录 🍋Vue是什么?🍋MVVM思想 🍋vue2快速入门🍋注意事项 🍋数据单向渲染🍋数据双向渲染🍋作业布置 🍋事件绑定🍋事件处理机制🍋注意事项和细节&#x1f…

Android屏幕适配方案

方案一: 安卓app禁止跟随系统字体大小,显示大小而改变。 1、定义工具类 public final class DisplayUtil {/*** 禁用7.0(23)以上显示大小改变和文字大小*/public static Resources disabledDisplayDpiChange(Resources res) {C…

openGauss学习笔记-07 openGauss 语法

文章目录 openGauss学习笔记-07 openGauss 语法7.1 帮助7.2 SQL语句格式7.3 SQL语法ABORTALTER AUDIT POLICYALTER DATA SOURCEALTER DATABASEALTER DEFAULT PRIVILEGESALTER DIRECTORYALTER EXTENSIONALTER FOREIGN TABLEALTER FUNCTIONALTER GROUPALTER INDEXALTER LARGE OBJ…

APB 3

一. APB3概述 APB协议是AMBA总线协议系列的一部分,其接口简单、功耗较低,常用于连接低带宽的高性能外设,每次数据传输至少需要两个时钟周期,且无法同时进行读写操作。 APB作为系统中的从机,可以通过AHB、AHB-Lite、AXI…

RPC分布式网络通信框架(二)—— moduo网络解析

文章目录 一、框架通信原理二、框架初始化框架初始化 三、调用端(客户端)调用端框架调用端主程序 四、提供端(服务器)提供端主程序提供端框架NotifyService方法Run方法muduo库的优点网络代码RpcProvider::OnConnection业务代码Rpc…

go 爬虫速度控制

go 爬虫速度控制 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度控制并发限流并发和限流的区别简单说明有了并发控制为什么还要限流 最总代码 使用go语言用原生net/http写爬虫如何优雅的控制并发和请求速度 go程序的执行效率相对python要快的多,且占…

如何在半年内找到理想的数据库内核开发工作?

学习和提升技能:着重学习数据库原理、数据结构、算法和数据库内核开发相关的知识。掌握SQL语言和数据库设计,了解常见的数据库系统和底层技术。参加培训、在线课程或自学,不断提升自己的技术能力。 我这里刚好有嵌入式、单片机、plc的资料需…

三、CAS认证流程

一、相关概念 TGC(Ticket-granting cookie):存放用户身份认证的cookie,在浏览器和CAS server用来明确用户身份的凭证;ST(Service Ticket):CAS服务器通过浏览器分发给客户端服务器的票据,一个特定服务只能有一个唯一的…

微信小程序开发学习之页面导航(声明式导航和编程式导航)

微信小程序之页面导航(声明式导航和编程式导航) 1.0 页面导航1.1. 声明式导航1.1.1. 导航到tabBar页面1.1.2. 导航到非tabBar页面1.1.3. 后退导航 1.2. 编程式导航1.2.1. 导航到tabBar页面1.2.2. 导航到非tabBar页面1.2.3. 后退导航 1.3. 导航传参1.3.1.…