java 字符流 知乎_java 中的 io 流 字节流以及字符流,对于这些流,如何做到透彻理解呢 ??这几天有点原地打转?...

本文探讨了计算机I/O的概念,包括通过IO总线和DMA进行数据传输,以及汇编层面的指令。同时,解释了操作系统如何处理读写操作,并提及Java中的缓冲区读写,特别是如何利用缓存提高效率。尽管CPU计算能力强大,但I/O操作仍可能成为性能瓶颈。Java中的Buffer类用于优化这种交互,涉及内存管理和硬件层面的操作。
摘要由CSDN通过智能技术生成

其实我也是一知半解。从计算机架构来说,IO的含义是通过IO总线读写数据到内存中,或者是DMA直接读取(看图)。可以看成是计算机各组件之间根据底层协议和接口发生的通信。不是cpu中寄存器的运算操作。

从汇编的层面看。命令mov设置好输出输入的端口port,然后用in, out命令和memory器件进行通信传输数据。

读写操作中的open,read,write,close,flush都是操作系统或者是底层的函数会把具体IO的操作都做好。

java是跑在虚拟机上,但是很多的native函数是基于虚拟机所在的计算机架构,也就是虚拟机会去实现。

java中的这几种分类,我记得是buffer和不buffer,byte和bit来读写。区别只是在于存储设备如果不是内存很可能是硬盘,硬盘是字符设备,按照字符来存储的,欧不是,是块设备,是一整块的数据读出来。所以可能一个个字节读取还是按照字节读取,这个操作依然是远没有现在cpu的计算性能高的。都可能对cpu的计算产生阻塞。

buffered或者是其他的名称的类是指会写到缓存,或者写到其他地方去。那就要理解什么是缓存,以及这种读写方式硬件层面的操作。

--

java老鸟一只,其实也是思维混乱,表述不清。希望能有点启发。自己百度也是可以的

IO控制的几种方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值