You are given a passage. You need to construct a question about the information present in the passage. Construct a question in such a way that (i) it is unambiguous, (ii) its answer is the whole paragraph. Avoid creating questions that can be answered correctly without actually understanding the paragraph.
Q: Hi,\nAs such I have never really been to Java. But the thing that you have asked is fairly technology independent. I will try to explain them in as much non-tech terms as possible.\n \nSerialization:\n Serialization is a process of saving state of an object in some format. State of an object means its current value which in turn comprises of the values of the members of the object. For example, if I have a class Student, having RollNo and Name as its members(properties), and an object of Student class 'Deobrat' is created with ROllNo=01 and Name="Deobrat Singh". Then serialization of the object Deobrat would mean, saving this object somewhere (either in memorystream or in a filestream or on a networkstream) in such a way that it can later be reconstructed to again form the same object.\nTo be a bit more elaborate, consider an example where I have to send an object across a network to some remote computer (something that we do in WebServices). Now, in this case, the object itself cannot be sent because the network doesn't recognise what an object is. It simply understands a stream of bytes and nothing else. Serialization allows us to convert this object into a stream of bytes which then could be sent across the network to the remote computer.\n \nDeserialization:\n Deserialization is exactly the reverse process of Serialization. It means, to convert the stream of bytes in order to reconstruct the original object (or object state to be more precise). In the Web Service example scenario taken above, the Service Request broker will simply extract the stream of bytes, Deserialize them to create the object and give it to the class that is supposed to process it.\n \nExternalization:\n Serialization is achieved in 2 ways.\nUsing the Serializable interface which tells the runtime(or JVM) that the class has only premitive types that are serializable by themselves so the runtime can go ahead and use it's own code to serialize any object of this class. \nOn the other hand, if you want to write a class that has complete control over the process of serialization & deserialization, you implement Externalizable interface. In this case, when an object of your class has to be serialized, the runtime will not do it by itself. Rather it will call a method writeExternal to serialize the object. You will have complete control over the stream and format of the data to serialize. While deserializing the object, again the runtime will call readExternal method on your class which is supposed to read the stream and reconstruct the object state.\nA word of caution:\n\n In most cases, it is sufficient to use the Serializable interface because you wont have to write code for the serialization process. But in certain cases where you have a very heavy class with a lot of properties which need not be sent to the other end, it is better to write your code using Externalizable interface, because, then you will have complete control over which properties need to be serialized and which need not be serialized. While deserializing, again, your class will know which are the properties that must have been serialized and accordingly, you can recreate the object state.\n\nIn general, if you want a custom (in most cases, partial) serialization/deserialization to happen, you use Externalization.
A: 
what is Serialization in Java?Can anyone help me with an example?