I want to make a small programming tutorial which will have a number of images visualizing various data types, but I am not sure how to draw these images of the data types. Assume that I have a `FileOutputStream` object that writes to the file `1.txt`. How can I think of this `FileOutputStream` object, do I think about it as a container of the stream of data (i.e. a pipe), for example: [![enter image description here][1]][1] Or do I think about it as the stream of data only, for example: [![enter image description here][2]][2] I think the term "stream of water" in real life only means the flowing water (without having a container that contains the flowing water). ---------- My question also apply to other data types, for example do I think of a `Stack` of integers as the container of the stack of integers, for example: [![enter image description here][3]][3] Or do I think about it as the stack of integers only, for example: [![enter image description here][4]][4] I think the term "stack of books" in real life only means the stacked books (without having a container that contains the stacked books). ---------- Same thing for the `int` data type, do I think of an `int` as the container of the integer, for example: [![enter image description here][5]][5] Or do I think about it as the integer only, for example: [![enter image description here][6]][6] [1]: https://i.sstatic.net/QAnz0.png [2]: https://i.sstatic.net/WUqPA.png [3]: https://i.sstatic.net/XABdh.png [4]: https://i.sstatic.net/wvTcG.png [5]: https://i.sstatic.net/hboW9.png [6]: https://i.sstatic.net/x2FLJ.png