java中对象的序列化问题

证明如果传递的对象不实现序列化,对象无法被正常还原。这个怎么证明啊?我需要详细的代码,能运行结果的,谢了。... 证明如果传递的对象不实现序列化,对象无法被正常还原。
这个怎么证明啊?我需要详细的代码,能运行结果的,谢了。
展开
 我来答
嗳你不知可否
2016-01-11 · TA获得超过7183个赞
知道大有可为答主
回答量:4507
采纳率:81%
帮助的人:1146万
展开全部

java中对象的序列化问题:

对象的序列化主要有两种用途:

  1. 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;

  2. 在网络上传送对象的字节序列。


在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中。


序列化实例:

import java.io.Serializable;
/**
 * <p>ClassName: Person<p>
 * <p>Description:测试对象序列化和反序列化<p>
 * @author xudp
 * @version 1.0 V
 */
public class Person implements Serializable {
    /**
     * 序列化ID
     */
    private static final long serialVersionUID = -5809782578272943999L;
    private int age;
    private String name;
    private String sex;
    public int getAge() {
        return age;
    }
    public String getName() {
        return name;
    }
    public String getSex() {
        return sex;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
}
百度网友8fcd6040e
2009-04-23 · TA获得超过1976个赞
知道小有建树答主
回答量:538
采纳率:0%
帮助的人:685万
展开全部
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class A implements Serializable
{
int i;
A(int i) { this.i = i; }
}

public class Test
{

public static void main(String[] args) throws IOException
{
A a = new A(5);
System.out.println(a.i);//5

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(a);

ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
try
{
A x = (A) ois.readObject();
System.out.println(x.i);//5
} catch (ClassNotFoundException e)
{
e.printStackTrace();
System.exit(1);
}
}
}

如果把class A implements Serializable 的"implements Serializable"去掉,运行时将会产生错误
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式