问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中对象的序列化问题

发布网友 发布时间:2022-04-12 18:35

我来回答

2个回答

热心网友 时间:2022-04-12 20:04

java中对象的序列化问题:

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

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

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


在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是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;
    }
}

热心网友 时间:2022-04-12 21:22

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"去掉,运行时将会产生错误
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见好多鱼在水里活蹦乱跳 教你如何将让reaver PIN 进度随意更改精确前四位 求个保存PIN进度的方法 ...不上外接键盘,但鼠标一直有用,谁能告诉我怎么回事,先谢了。。_百度... 相机SD卡,卡上图片电脑显示不出来 相机SD卡用读卡器插到电脑上DCIM文件夹不显示照片怎么解决? win10查询错误日志的方法-win10怎么查询错误日志 电脑系统日志文件如何查看电脑里的系统日志 电脑事件日志在哪里看怎样查看电脑使用的日志 win11系统日志在哪里看 win11系统日志怎么看 西安市碑林区房产契税在哪里交? 风电运维和检修哪个好 中国风电集团的运维公司待遇怎么样? 大生科技(北京)有限公司怎么样?我投的是远景的,做风电运维,刚毕业。去第三方好么? 中国风电运维公司怎么样? 北京海外远景风电运维公司怎么样,有没有知道的或者在这公司干过的,想了解下 风力发电维护人力资源招聘真实吗 一个关于C#序列化的问题! 票管家365开开票闪退怎么办? 打印发票的软件闪退怎么解决 如何做出更好吃的豆腐炖粉条? 自己做冻豆腐炖粉条粉条总是会消失,这是错在了哪? 西瓜视频怎么取消登录保护? 我用西兰花,胡萝卜,香菇,小米,大米一起熬的粥,可以吃不,有什么没得 鸡肉香菇西兰花可以一起弄汤喝吗 鸡肉香菇西兰花可以一起吃吗 香菇胡萝卜西蓝花可以一起给宝宝吃吗 香菇西兰花胡萝卜可以一起吃吗 白玉菇可不可以跟西兰花胡萝卜鸡胸肉一起煲粥喝? 素粥怎么熬? 微信公众号申请注销那后其他管理员 淘宝运营秘籍新店促销如何运用好变相折扣 什么叫“取名用字五行”? 淘宝宝贝促销要怎么做?这6个绝招记好! 云动微信好友计数器只有没有微信密码怎么能把这个微信挂到云动计数器上面? 自己开的淘宝店,怎么设置特价?在哪里设置? 取名用字,三种说法呢?咋整? 五行,八字,喜用神! 淘宝网出售的宝贝怎么打折? 起名字应该用五行属什么的字? 五行缺什么? 乌鲁木齐平安银行电话多少 请问乌鲁木齐商业银行客服是多少? 乌鲁木齐天山银行客服电话 乌鲁木齐银行app在哪改手机号 乌鲁木齐招商银行业务员的电话谁有,需要办理信用卡,谢谢 乌鲁木齐银行行号? 乌鲁木齐银行哪个地方可以补办一卡通? java 编程怎样实现对象序列化!下面这段程序为什么不是输出:name=成龙,age=50(书上所说)。 四川二建没满年限可以考试吗 四川二建注册条件 二建报考条件是什么?四川建筑二建报名条件是怎么样的?