In this chapter, we have talked about data-streams processing, which is different from processing the I/O streams we reviewed in Chapter 5, Strings, Input/Output, and Files. We defined what the data streams are, how to process their elements using stream operations, and how to chain (connect) stream operations in a pipeline. We also discussed stream initialization and how to process streams in parallel.
In the next chapter, the reader will be introduced to The Reactive Manifesto, its thrust, and examples of its implementations. We will discuss the difference between reactive and responsive systems and what asynchronous and non-blocking processings are. We will also talk about Reactive Streams and RxJava.