java语言

java反序列化对象的技巧

时间:2023-03-27 14:41:54 java语言 我要投稿
  • 相关推荐

java反序列化对象的技巧

  Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。以下是小编为大家搜索整理的java反序列化对象的技巧,欢迎阅读!更多精彩内容请及时关注我们应届毕业生考试网!

  下面的DeserializeDemo程序实例了反序列化,/tmp/employee.ser存储了Employee对象。

  import java.io.*;

  public class DeserializeDemo

  {

  public static void main(String [] args)

  {

  Employee e = null;

  try

  {

  FileInputStream fileIn = new FileInputStream("/tmp/employee.ser");

  ObjectInputStream in = new ObjectInputStream(fileIn);

  e = (Employee) in.readObject();

  in.close();

  fileIn.close();

  }catch(IOException i)

  {

  i.printStackTrace();

  return;

  }catch(ClassNotFoundException c)

  {

  System.out.println("Employee class not found");

  c.printStackTrace();

  return;

  }

  System.out.println("Deserialized Employee...");

  System.out.println("Name: " + e.name);

  System.out.println("Address: " + e.address);

  System.out.println("SSN: " + e.SSN);

  System.out.println("Number: " + e.number);

  }

  }

  以上程序编译运行结果如下所示:

  Deserialized Employee...

  Name: Reyan Ali

  Address:Phokka Kuan, Ambehta Peer

  SSN: 0

  Number:101

  这里要注意以下要点:

  readObject() 方法中的try/catch代码块尝试捕获 ClassNotFoundException异常。对于JVM可以反序列化对象,它必须是能够找到字节码的类。如果JVM在反序列化对象的过程中找不到该类,则抛出一个 ClassNotFoundException异常。

  注意,readObject()方法的返回值被转化成Employee引用。

  当对象被序列化时,属性SSN的值为111222333,但是因为该属性是短暂的,该值没有被发送到输出流。所以反序列化后Employee对象的SSN属性为0。

【java反序列化对象的技巧】相关文章:

如何理解Java对象的序列化11-30

Java面向对象知识巩固09-28

java面向对象编程讲解04-02

JAVA对象创造及内存布局介绍12-04

Java语言的学习技巧11-27

Java中对象和引用的具体区别12-04

java远程方法调用技巧03-29

Java多线程的开发技巧12-01

让JAVA代码更高效的技巧04-04

查看java对象所占的内存大小的方法12-04