栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

介绍一下java中对象的序列化

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

介绍一下java中对象的序列化

对象的序列化指的是将对象以字节流的形式纪念性传输,即将对象转化(分解)为顺序字节流后应用java.io包中操作字节流的类实现在各种介质中的数据传输,对象的序列化被广泛地应用与网络分布式的远程调用RMI系统中。

当一个类实现了java.io包中的Serializable接口,则通过该类创建的对象被称之为可序列化对象。

一个对象可序列化的要求是创建该对象的类要实现Serializable接口。

示例

import java.io.*;

import java.util.*;

//关于Serializable接口见:http://java.sun.com/javase/6/docs/api/java/io/Serializable.html

public class SerializeDemo implements Serializable {

    Date date=new Date();

    String strUser;

    //transient String strPass;//非序序列化的部分

    String strPass;//可以设定为序列化的部分

    public SerializeDemo(String name,String pwd){

       strUser=name;

       strPass=pwd;

    }

    public String toString(){  //重写了根类Object的方法toString()

       String pwd=(strPass==null) ? “未知”:strPass;

       return “登录信息:n”+”用户名:”+  strUser+”n日期:”+date.toLocaleString()+”n密码:”+pwd;

    }

    public static void main(String[] args)

    throws IOException,ClassNotFoundException{

       SerializeDemo sd=new SerializeDemo(“liuzc”,”liuzc518″);//新建对象,调用构造函数

       System.out.println(sd);

       //下面是新建一个对象输出流

       ObjectOutputStream oosLogin=new ObjectOutputStream(new FileOutputStream(“user.data”));

       oosLogin.writeObject(sd);

       oosLogin.close();

       long lngTime=System.currentTimeMillis()+2000;

       while(System.currentTimeMillis()<lngTime);

       ObjectInputStream oisLogin=new ObjectInputStream(new FileInputStream(“user.data”));

       System.out.println(“重新读入登录信息……n”+(new Date()).toLocaleString());

       sd=(SerializeDemo)oisLogin.readObject();

       System.out.println(sd);

    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/359891.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号