天天看點

記憶體流與管道流 | 學習筆記

開發者學堂課程【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 是多線程的程式設計語言,是以就隻有在多線程的結構上使用了管道的概念。