java 序列化实现原理和深度分析

java 序列化

什么是序列化?

对象和二进制的转换。

转换的目的是啥?

对象转换为二进制,然后再把二进制恢复为对象。

具体应用场景是,把对象写到磁盘文件,或者更常见的就是把对象传到远程机器(比如,dubbo rpc 框架)。

什么是 java 序列化?

java 序列化特殊一点点,是对象和字节数组( byte[] )的转换。但是,字节数组的本质也是二进制。

序列化的作用?

所以,无论是其他语言,还是 java 语言的序列化,本质作用都是为了从磁盘文件或者远程机器恢复对象。

如何实现序列化?

实现序列化接口

public class Person implements Serializable {       private static final long serialVersionUID = 2709425275741743919L; }

复制代码

demo

pojo 类,主要是要实现序列化接口。

package test2;
import java.io.Serializable;
public class Person implements Serializable { //实现序列化接口
  private static final long serialVersionUID = 1L;
  private String name;  private Integer age;  private String address;
  public Person() {
    }
  public Person(String name, Integer age, String address) {
      this.name = name;    this.age = age;    this.address = address;  }

  @Override  public String toString() {
      return "test2.Person{" +        "name='" + name + ''' +        ", age=" + age +        ", address='" + address + ''' +        '}';  }}

复制代码

测试类,核心步骤

  1. 序列化

把对象转换为二进制(即字节数组),然后写到磁盘文件

2、反序列化

从磁盘文件恢复对象,其实就是把二进制再转换为对象

package test2;
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;
/**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值