Often, when we're dealing with information outside of our actual code, we're dealing with human-readable text that we've gotten from a file or are writing to a file or from an input or output stream. However, sometimes, human-readable text is just not convenient, and we'd like to use information that's more computer friendly. Through a process called serialization, we can take some Java objects and convert them into a binary stream that we could transfer across programs. This is not a human-friendly approach, as we'll see in this section. A serialized object looks like complete gibberish to us, but another Java program that knows about that object's class can recreate an object from that serialized information.
Not all Java objects can be serialized, though. In order for us to serialize an object, it needs to be marked...