【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

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 关键字

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

Transient关键字在Java对象序列化中的作用

在对象序列化的时候,有些变量比如密码等等,你需希望他去序列化,否则别人就可以通过字节流来回复数据得到你的private的数据,这样是一个很危险的问题,下面使用关键字Transient 来解决这个问题,他的意思就是不需要虚拟机去序列化这个变量,我会自己去处理 package com.bird.thinking; import java.io.FileInputStream; import java.io.FileNotFou

由transient的使用方法切入,谈java序列化

Blog转载自 》》》程序媛想事儿 源url:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html Java transient关...

Java基础——序列化(Serializable接口,transient关键字)

这篇博文主要介绍下Java序列化相关的内容以及如何去理解transient关键字。 首先在Java中有一个序列化接口Serializable,当需要表示该类是可序列化的,我们可以显示的声明实现序列化(Serializable)接口。然而transient关键字正是对于实现了序列化接口的。它的作用是对于标识了transient修饰符不做序列化操作。我们先构建一个类,代码如下:   <pre

Java序列化 transient关键字

java 的transient关键字
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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