What does it really mean to save an object? If the instance variables are all primitive types, it's pretty straightforward. But what if the instance variables are themselves references to objects? What gets saved? Clearly in Java it wouldn't make any sense to save the actual value of a reference variable, because the value of a Java reference has meaning only within the context of a single instance of a JVM. In other words, if you tried to restore the object in another instance of the JVM, even running on the same computer on which the object was originally serialized, the reference would be useless.
what does the stuff in bold mean?
2] How do we know if something is non-serializable?Is there a way to find that out?
Piya first of all lemme explain you what the statement means if you don't understand it. Saving a reference is like purchasing a postal address for $100000 instead of a real house. When you save a reference, the actual object referenced by the reference is saved so you get a real house for your 100000 bucks.
Single instance of JVM means a running JVM. When you run the java command, an instance of JVM is created. That is a JVM is started to run your program. That is an instance of JVM. It exists as long as your program is running. If you run the same program or a different program, then a different JVM instance will be created to serve that request...