建材做哪些网站买购网
news/
2025/10/2 13:10:51/
文章来源:
建材做哪些网站,买购网,网页设计的发展前景如何,网站搭建制作目录
1#xff1a;什么是序列化、反序列化#xff1f; 2#xff1a;序列化的用途#xff1f; 3#xff1a;序列化的n种方式
1#xff1a;什么是序列化、反序列化#xff1f;
把对象转换为字节序列的过程称为对象的序列化把字节序列转换为对象的过程中称为对象的反序列…目录
1什么是序列化、反序列化 2序列化的用途 3序列化的n种方式
1什么是序列化、反序列化
把对象转换为字节序列的过程称为对象的序列化把字节序列转换为对象的过程中称为对象的反序列化
2序列化的用途
把对象的字节序列持久化到磁盘通常会放到文件中在网络上传输对象的字节序列 在很多应用中需要对某些对象进行序列化让它们离开内存空间入住物理硬盘以便长期保存。比如最常见的是Web服务器中的Session对象当有 10万用户并发访问就有可能出现10万个Session对象内存可能吃不消于是Web容器就会把一些seesion先序列化到硬盘中等要用了再把保存在硬盘中的对象还原到内存中。 当两个进程在进行远程通信时彼此可以发送各种类型的数据。无论是何种类型的数据都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列才能在网络上传送接收方则需要把字节序列再恢复为Java对象。 3序列化的n种方式
3.1 Java的IO库 java.io.ObjectOutputStream代表对象输出流它的writeObject(Object obj)可以把参数obj对象序列化到当前输出流中。 java.io.ObjectInputStream代表对象输入流它的readObject()方法从一个输入流中读取字节序列并将其反序列化为对象返回。 只有实现了Serializable和Externalizable接口的类的对象才能被序列化。 Externalizable接口继承自 Serializable接口实现Externalizable接口的类完全由自身来控制序列化的行为而仅实现Serializable接口的类可以 采用默认的序列化方式 。 代码如下Java bean统一为Person后续不再单独列出
class Person implements Serializable {/*** */private static final long serialVersionUID 6191069895710625778L;private String name;private int age;private String sex;public Person(){}public Person(String name, int age, String sex) {this.name name;this.age age;this.sex sex;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}Overridepublic String toString() {return Person [name name , age age , sex sex ];}
}
public class Test {public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {Person man new Person(obob,18,M);System.out.println(原始对象man);String filePath Person.txt;serialize(man, filePath);Person p deSerialize(new File(filePath));System.out.println(反序列化后的对象p);}public static void serialize(Person p, String filePath) throws FileNotFoundException, IOException {ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(new File(filePath)));oos.writeObject(p);System.out.println(序列化成功);oos.close();}public static Person deSerialize(File file) throws FileNotFoundException, IOException, ClassNotFoundException {ObjectInputStream ois new ObjectInputStream(new FileInputStream(file));Person p (Person) ois.readObject();System.out.println(反序列化成功);ois.close();return p;}}输出为
原始对象Person [nameobob, age18, sexM]
序列化成功
反序列化成功
反序列化后的对象Person [nameobob, age18, sexM]
3.2 使用Json序列化工具
FastJson、ProtoBuf、Jackson等序列化工具都可以以fastjson为例 Person man new Person(obob,18,M);//序列化String json JSONObject.toJSONString(man);System.out.println(json);//反序列化System.out.println(JSONObject.parseObject(json, Person.class));
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924930.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!