Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

jgs

Slide 4

Slide 4 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 4 jgs Example

Slide 5

Slide 5 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 5 jgs finally Statement § The finally statement lets you execute code, after try...catch, regardless of the result

Slide 6

Slide 6 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 6 jgs Example

Slide 7

Slide 7 text

jgs throw

Slide 8

Slide 8 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 8 jgs Definition § The throw statement allows you to create a custom error

Slide 9

Slide 9 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 9 jgs Example

Slide 10

Slide 10 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 10 jgs Example

Slide 11

Slide 11 text

jgs Serialization

Slide 12

Slide 12 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 12 jgs I/O Streams § An I/O Stream represents an input source or an output destination

Slide 13

Slide 13 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 13 jgs BufferedReader PrintWriter I/O Streams binary FileInputStream FileOutputStream FileReader FileWriter char FileReader FileWriter lines

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 15 jgs I/O Streams BufferedReader PrintWriter binary FileInputStream FileOutputStream FileReader FileWriter char FileReader FileWriter lines ObjectInputStream ObjectOutputStream FileInputStream FileOutputStream objects

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 17 jgs Step 1

Slide 18

Slide 18 text

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;

Slide 19

Slide 19 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 19 jgs Step 2

Slide 20

Slide 20 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 20 jgs Step 3

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

jgs Topics to Review

Slide 23

Slide 23 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 23 jgs Topics per Week

Slide 24

Slide 24 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 24 jgs

Slide 25

Slide 25 text

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)

Slide 26

Slide 26 text

Javier Gonzalez-Sanchez | CSE205 | Fall 2021 | 26 jgs Questions

Slide 27

Slide 27 text

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.