什么是Java序列化?
什么是Java序列化,如何实现java序列化
package cn.itcast.demo2;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;public class People implements Serializable{private String name;private int age;public People(){this.name = "lili";this.age = 20;}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;}/*** java.io.ObjectOutputStream代表对象输出流* 它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化* 把得到的字节序列写到一个目标输出流中。* 只有实现了Serializable和Externalizable接口的类的对象才能被序列化。* @param args*/public static void main(String[] args) {People p = new People();ObjectOutputStream oos = null;ObjectInputStream ois = null; try {//序列化对象FileOutputStream fos = new FileOutputStream("perple.out");oos = new ObjectOutputStream(fos);oos.writeObject(p);oos.close();} catch (IOException e) {e.printStackTrace();}People p1;/*** java.io.ObjectInputStream代表对象输入流* 它的readObject()方法从一个源输入流中读取字节序列* 再把它们反序列化为一个对象,并将其返回。*/try {//反序列化对象FileInputStream fis = new FileInputStream("perple.out");ois = new ObjectInputStream(fis);p1 = (People) ois.readObject();System.out.println("name:" + p1.getName());System.out.println("age:" + p1.getAge());ois.close();} catch (Exception e) {e.printStackTrace();} }}
package cn.itcast.demo2;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;public class ObjectSaver {public static void main(String[] args) {/*其中的 "perple.out" 表示存放序列化对象的文件*///序列化对象ObjectOutputStream oos = null;ObjectInputStream ois = null; try {FileOutputStream fos = new FileOutputStream("perple.out");oos = new ObjectOutputStream(fos);Customer customer = new Customer("王麻子", 24);oos.writeObject("你好!");oos.writeObject(new Date());oos.writeObject(customer);oos.close();} catch (Exception e) {e.printStackTrace();}Customer obj3 = null;//反序列化对象try {FileInputStream fis = new FileInputStream("perple.out");ois = new ObjectInputStream(fis);System.out.println("obj1 " + (String) ois.readObject()); //读取字面值常量System.out.println("obj2 " + (Date) ois.readObject()); //读取匿名Date对象obj3 = (Customer) ois.readObject(); //读取customer对象System.out.println("obj3 " + obj3);ois.close();} catch (Exception e) {// TODO: handle exceptionSystem.out.println(e);}}
}
什么是Java序列化?相关推荐
- Java序列化的机制和原理
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍. Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述 ...
- java基础(十)-----Java 序列化的高级认识
将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ...
- java序列化和RMI
深入了解序列化"契约" 由于Java提供了良好的默认支持,实现基本的对象序列化是件比较简单的事.待序列化的Java类只需要实现Serializable接口即可.Serializab ...
- 什么是java序列化_什么是Java序列化?为什么序列化?序列化有哪些方式?
先普及一下,计算机中无法识别一个基本单元[字节]来表示,必须经过"翻译"才能让计算机理解人类的语言,这个翻译过程就是[编码],通常所说的字符转换为字节. ?有I/O的地方机就会涉及 ...
- java kryo_kryo序列化 - Java序列化期间的错误
我的应用程序有大量域对象,它们通过spring-session被序列化到Redis存储中.我试图使用Kryo(4.0.0)进行自动序列化,而不使对象明确可序列化.kryo序列化 - Java序列化期间 ...
- java 序列化慢_java原生序列化慢在哪里?
Java原生序列化和二进制序列化性能比较 序列化速度 package com.clq.netty.serializable; import java.io.ByteArrayOutputStream; ...
- Java序列化的作用和反序列化
1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...
- Java序列化技术与Protobuff
前言: Java序列化是Java技术体系当中的一个重要议题,序列化的意义在于信息的交换和存储,通常会和io.持久化.rmi技术有关(eg:一些orm框架会要求持久化的对象类型实现Serializabl ...
- 深入理解JAVA序列化
2019独角兽企业重金招聘Python工程师标准>>> 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件.那你最好再阅读该篇文章,文章对序列化进行了更深一 ...
- Java 序列化的高级认识
这篇文章来自:http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html 引言 将 Java 对象序列化为二进制文件的 Java ...
最新文章
- 清华朱文武团队斩获NIPS 2018 AutoML挑战赛亚军,高校排名第一
- Linux/CentOS优化配置 汇总
- 携手Visa IBM Watson IoT加速互联设备转化为潜在销售点
- php 7.1/7.3使用 json_encode 函数造成浮点类型数据出现精度问题
- sublime 3143 注册码
- 组织JSON数据、JSON转换
- 《感谢自己的不完美》----经典语录
- 密钥库证书的SHA-1指纹
- 1.《天空之城》- 尤克里里指弹入门版
- 解决No version of NDK matched the requested version编译报错的问题
- Windows8.1环境如何删除FlashHelperService.exe文件
- 如何在金仓数据库KingbaseES中使用pg_get_function_arg_default函数
- word2003下的神秘咒语——灵活的棕色狐狸跳过懒狗
- 大师兄科研网_怎样知道一名研究生有没有科研潜力?
- jdk-18.0.0.1安装包下载安装教程
- 雅思口语备考笔记-Part2练习
- 解密大清社会:红楼韵事
- 2020年最新SCI期刊影响因子查询
- 强力Django+杀手级xadmin全新开发在线教育网站
- 联想拯救者Y7000P2019双系统安装与卸载(win10+ubuntu18.04+NVIDIA GeForce RTX2060+CUDA10.0+Cudnn+pytorch)
热门文章
- x509证书OpenSSL 数据结构
- 最新软件测试面试题,常见面试题及答案汇总,不怕拿不到offer
- 微博情感分析的表情符号平滑语言模型(A11, AAAI2012)
- Centos - top 命令详解
- torch.bernoulli 的使用方法(附代码示例)
- 新研究评估Masimo SedLine(R)脑功能监护仪能否预测心跳骤停后ICU患者的神经系统转归和长期生存
- anki计算机知识,「背书 刷题神器」 Anki 是应对考试的强力效率 buff
- 什么是PCB抄板?主要抄板软件有哪些?
- 阿里云创建管理bucket(一)
- Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素