java对象文件序列化_Java对象类文件的序列化与反序列化

1.java.io.ObjectOutputStream;序列化JAVA对象到硬盘

2.java.io.ObjectInputStream;将硬盘中的数据“反序列化”到JVM内存中

Compile编译(java->class)

DeCompile反编译(class->java)

3.标识性接口的作用:

JVM如果检查到该对象实现了某个标识接口,会对它进行特殊待遇

如下代码中的User102实现的接口Serializable

疑问:User102实现Serializable接口,JVM会对它的特殊待遇是什么?

package com.bjpowernode.java_learning;importjava.io.*;import java.io.Serializable;

​publicclass D102_1_ObjectOutputStream {

publicstaticvoidmain(String[] args)throws IOException,ClassNotFoundException{

//1.创建java对象    User102 u1 =newUser102("彭于晏");

//2.创建输出流(序列化流)(JVM中的对象状态保存到硬盘中)    String address = "C:\\\\Users\\\\lenovo1\\\\Workspaces\\\\MyEclipse CI\\\\Java_learning\\\\src\\\\com\\\\bjpowernode\\\\java_learning\\\\temp1.txt";

ObjectOutputStream oos =newObjectOutputStream(new FileOutputStream(address));

//3.写入    oos.writeObject(u1);//写进去的不是几个文字,而是一个字符串对象

//4.刷新    oos.flush();

//5.关闭    oos.close();

//接下来我们需要把序列化的对象给读出来,也就是反序列化

//6.创建反序列化流    ObjectInputStream ois =newObjectInputStream(new FileInputStream(address));

//7.反序列化    Object o = ois.readObject();

System.out.println(o);

//关闭    ois.close();

}

}classUser102implementsSerializable{//该接口是一个可序列化的,该接口没有任何方法,该接口是一个

//标志性的接口,像这样的接口还有java.util.Cloneable  String name;

User102(String name){

this.name=name;

}

public String toString() {

return"User[name="+name+"]";

}

}

龙华大道1号 http://www.kinghill.cn/LongHuaDaDao1Hao/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值