jgs CSE 205 Object-Oriented Programming and Data Structures Lecture 25: Serialization Dr. Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 2 jgs Exceptions There are many exception types available in Java: § ArithmeticException, § FileNotFoundException, § ArrayIndexOutOfBoundsException, § SecurityException, § etc. § The parent of all is the class Exception
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 5 jgs finally Statement § The finally statement lets you execute code, after try...catch, regardless of the result
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 14 jgs Serialization § Java provides a mechanism, called serialization where an object can be represented as a sequence of bytes that includes the object's data as well as information about the object's type and the types of data stored in the object.
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 16 jgs Serialization § the process is JVM independent –an object can be serialized on one platform and deserialized on an entirely different platform. § Classes ObjectInputStream and ObjectOutputStream are high-level streams that contain the methods for serializing and deserializing an object.
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 18 jgs Serializable For a class to be serialized, two conditions must be met: § The class must implement the java.io.Serializable interface. § All the fields in the class must be serializable. § If you do not want a field to be serializable, mark is as transient, such as public transient int grade;
Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 21 jgs Serialization § The try/catch block tries to catch a ClassNotFoundException, which is declared by the readObject() method. § For a JVM to be able to deserialize an object, it must be able to find the bytecode for the class. If the JVM can't find a class during the deserialization of an object, it throws a ClassNotFoundException. § Notice that the return value of readObject() is an Object. Thus, casting is needed.
jgs The following slides shows some examples related to some topics This is NOT a comprehensive list of topics Topics in the exam can be found Weeks 2 to 16 (Lectures 1 to 24)
jgs CSE 205 Object-Oriented Programming and Data Structures Javier Gonzalez-Sanchez, Ph.D. [email protected] Fall 2021 Copyright. These slides can only be used as study material for the class CSE205 at Arizona State University. They cannot be distributed or used for another purpose.