为什么实体类需要序列化?

序列化是将对象状态转化为可存储或传输的过程,常用于HttpSession对象的存储和传输,以节省内存资源。实体类通过创建对象输出流,调用writeObject()方法实现序列化;反序列化则通过对象输入流的readObject()方法完成。
摘要由CSDN通过智能技术生成

一、什么是序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

在计算机中文本、图片、音频、视频都是以二进制序列的形式存储和传输,序列化可简单理解为将对象转变为二进制序列存储传输的一种方法。

二、那么实体类为什么需要序列化

客户端开启某个会话功能时,web服务器就会创建一个与该客户端对应的HttpSession对象,这样会占用一定的内存空间,大量不活动但是未超时的HttpSession对象会对内存空间造成大量浪费,为了解决这种情况,我们可以将不活动但是未超时的这种HttpSession对象通过序列化转移到文件系统或数据库中保存,当服务器需要使用的时候在将他们反序列化恢复取出载入内存。

三、怎么实现

对象序列化包括如下步骤:
  1) 创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;
  2) 通过对象输出流的writeObject()方法写对象。

对象反序列化的步骤如下:
  1) 创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;
  2) 通过对象输入流的readObject()方法读取对象。

import java.io.Serializable;


public class Person implements Serializable {
   

    /**
     * 序列化ID
     */
    private static final long serialVersionUID = -5809782578272943999L;
    private int age;
    private String name;
    private String sex;

    public int getAge() {
   
        return age;
    }

    public String getName() {
   
        return name;
    }

    public String getSex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值