我对Java Serializable(序列化)的理解和总结--转

1、序列化是干什么的?
       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。

2、什么情况下需要序列化   
    a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
    b)当你想用套接字在网络上传送对象的时候;
    c)当你想通过RMI传输对象的时候;

package cn.sdl.serializable;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Box implements Serializable{

    private int width;
    private int height;

    public void setWidth(int width) {
        this.width = width;
    }
    public void setHeight(int height) {
        this.height = height;
    }

    public static void main(String[] args) {
        Box box = new Box();
        box.setHeight(11);
        box.setWidth(22);

        try {
            FileOutputStream fs = new FileOutputStream("D:/foo.ser");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(box);
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
时间: 2024-11-06 20:41:46

我对Java Serializable(序列化)的理解和总结--转的相关文章

java对象序列化的理解

1.java中的序列化时transient变量(这个关键字的作用就是告知JAVA我不可以被序列化)和静态变量不会被序列          化(下面是一个测试的例子) (实体带versionUUID,便于反序列化时不会报错.) 2.也是最应该注意的,如果你先序列化对象A后序列化B,那么在反序列化的时候一定记着JAVA规定先读到的对象               是先被序列化的对象,不要先接收对象B,那样会报错.尤其在使用上面的Externalizable的时候一定要注意读取            

对Java Serializable(序列化)的理解和总结(二)

遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化 b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化 c,serialVersionUID 这个的值到底是在怎么设置的,有什么用.有的是1L,有的是一长串数字,迷惑ing. 我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题. 在处理这个问题之前,你要先知道一个问题,这个比较重要. 这个Serializable接口,以及相关的东西,全部

Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用.有的是1L,有的是一长串数字,迷惑ing.我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题. 在处理这个问题之前,你要先知道一个问题,这个比较重要.这个Serializable接口,以及相关的东西,全部都在 J

[转]Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

原文地址:https://blog.csdn.net/qq_27093465/article/details/78544505 遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题: 1.什么叫序列化和反序列化 2.作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化 3.serialVersionUID 这个的值到底是在怎么设置的,有什么用.有的是1L,有的是一长串数字,迷惑ing. 我刚刚见到这个关键字 Serializable 的时候,就

Serializable 序列化和反序列化

遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题:a)什么叫序列化和反序列化b)作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化c)serialVersionUID 这个的值到底是在怎么设置的,有什么用.有的是1L,有的是一长串数字,迷惑ing.      我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题. 在处理这个问题之前,你要先知道一个问题,这个比较重要.这个Serializable接口,以及相关的东西

Java Serializable(序列化)的理解和总结、具体实现过程(转)

原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=13576&fromuid=3402 Java Serializable(序列化)的理解和总结.具体实现过程 内存中的对象是怎么存在的?  内存中各种对象的状态是?  实例变量是什么(指的是实例化的对象吗)?    使用序列化的好处是什么? 1.序列化是干什么的?        简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出

对Java Serializable(序列化)的理解和总结(转)

转自:https://www.cnblogs.com/qq3111901846/p/7894532.html 1.序列化是干什么的?       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化. 2.什么情况下需要序列化       a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候: 

【java】理解java对象序列化

关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文.码并茂,希望对大家有所帮助.(2012.02.14最后更新) 1. 什么是Java对象序列化 Java平台允许我们在内存中创建可

深入理解Java对象序列化

关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文.码并茂,希望对大家有所帮助.(持续更新中,2012.02.13最后更新) 1. 什么是Java对象序列化 Java平台允许我们在

Java 的序列化Serializable接口介绍及应用

常看到类中有一串很长的 如 private static final long serialVersionUID = -4667619549931154146L;的数字声明.这些其实是对此类进行序列化的,那为何要进行序列化呢?下面参照网络及jdk说明,进行学习一下: 理解: serialVersionUID 用来表明类的不同版本间的兼容性 简单的说,Java的序列化是通过在运行时判断类的serialversionUID来验证版本的一致性的.在进行序列化时,jvm会把传来的字节流中的serialv