开发者学堂课程【Java 面试疑难点串讲1:面试技巧及语言基础:内存流与管道流】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/24/detail/521
内存流与管道流
内容介绍
一、内存流与管道流
一、内存流与管道流
什么叫内存流与管道流的学习。
首先明确一个问题,在 Java 里面,IO 的设计是非常全面的,千万不要简单的认为 Java 把 IO 问题复杂化了,恰恰是因为 IO 的问题在许多语言里面都没有提供如此之多的支持类库。
C++缔造了 Java,然而需要清楚的是 C、C++ 本质上对于 IO 实现都是非常麻烦的(学习 C 和 C++的时候最痛苦的事情在于“ IO 操作搞不明白")。
内存是直接基于程序内存做的一种简单的IO处理,可以把内存想象为文件,但是这个文件不会出现在磁盘上,所以内存流是在需要产IO的情况下,但是又不希望产生实际的存储文件的时候所采用的一种 IO 方案。
管道最早是来自于 Unix 系统中的一个概念,指的是两个进程之间的通讯关系,同一个程序由于运行的进程不同,所以其拥有各自的数据存储空间。
Java 并没有进程的开发( Python 提供有多进程开发、还提供协程开发),多线程和多进程之间最大的关系在于若干个线程能够共享这一个进程上的所有数据,但多进程的数据,每一个进程有每一个进程的空间存储,彼此不相关,所以为了保证两个进程之间可以互相的沟通,提供有了管道流的概念,而 Java 是多线程的编程语言,所以就只有在多线程的结构上使用了管道的概念。