Java序列化与transient关键字

原创 2016年08月29日 09:03:39

1. 序列化:

Serialization(序列化)是一种将对象以一连串字节描述的过程,一般用于传输和持久化对象。

Deserialization(反序列化)是一种将这些字节重建成对象的过程。

2. 如何序列化:

序列化对象,只需要实现Serializable接口。告诉JVM这个类可以序列化。

3. static、transient后面修饰的字段不会被序列化。

4. 示例:

package com.sheepmu;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
public class MyTest implements Serializable
{
    private static final long serialVersionUID = 1L;
    private String name="SheepMu";
    private int age=24;
    public static void main(String[] args)
    {//以下代码实现序列化
        try
        {
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("my.out"));//输出流保存的文件名为 my.out ;ObjectOutputStream能把Object输出成Byte流
            MyTest myTest=new MyTest();
            oos.writeObject(myTest);
            oos.flush();  //缓冲流
            oos.close(); //关闭流
        } catch (FileNotFoundException e)
        {       
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        fan();//调用下面的  反序列化  代码
    }
    public static void fan()//反序列的过程
    {   
         ObjectInputStream oin = null;//局部变量必须要初始化
        try
        {
            oin = new ObjectInputStream(new FileInputStream("my.out"));
        } catch (FileNotFoundException e1)
        {       
            e1.printStackTrace();
        } catch (IOException e1)
        {
            e1.printStackTrace();
        }     
        MyTest mts = null;
        try {
            mts = (MyTest ) oin.readObject();//由Object对象向下转型为MyTest对象
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }    
         System.out.println("name="+mts.name);   
         System.out.println("age="+mts.age);   
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java学习——序列化与 Transient 关键字

转自 :http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html?ca=drs-#major5 引言 将...

java学习——序列化与 Transient 关键字

java学习——序列化与 Transient 关键字 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只...

java序列化、反序列化;关键字transient、volatile

java序列化与反序列化的作用 序列化定义:把对象转化为字节序列的过程称为对象的序列化。 反序列化定义:把字节序列恢复成对象的过程称为对象的反序列化。 序列化、反序列化实现方式:...

Java 序列化、反序列化与transient关键字

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。      将序列化对象写入文件之后,可以从...

java的序列化与反序列化及transient关键字

一、序列化和反序列化的概念   把对象转换为字节序列的过程称为对象的序列化。   把字节序列恢复为对象的过程称为对象的反序列化。   对象的序列化主要有两种用途:   1) 把对象的字节序...

transient 关键字 与序列化

Java transient关键字 1. transient的作用及使用方法  对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们...

Java Serialization/序列化/反序列化 及 transient Java关键字详解

以前只知道序列化和反序列化的意思及怎么去使用,没有更深入的去了解,在学习之中遇到了这个transient关键字,以前并不知道在Java中 还有 transient 关键字,既然遇到了就花点时间把整理一...

Java对象序列化之 transient 使用小记

我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable...

再学java基础(4)Object流、Serializable序列化、transient

import java.io.*; public class TestObjectIO { public static void main(String args[]) throws Excep...

java 序列化 serialVersionUID transient

为什么要序列化? 我们所说的序列化是“对象状态”的序列化,将对象转化为流的过程就是序列化;从流恢复为对象的过程就是反序列化;序列化的都是对象的状态,所以静态字段不会被序列化。 序列化的应用场景 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)