什么是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序列化?相关推荐

  1. Java序列化的机制和原理

    有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍. Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述 ...

  2. java基础(十)-----Java 序列化的高级认识

    将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ...

  3. java序列化和RMI

    深入了解序列化"契约" 由于Java提供了良好的默认支持,实现基本的对象序列化是件比较简单的事.待序列化的Java类只需要实现Serializable接口即可.Serializab ...

  4. 什么是java序列化_什么是Java序列化?为什么序列化?序列化有哪些方式?

    先普及一下,计算机中无法识别一个基本单元[字节]来表示,必须经过"翻译"才能让计算机理解人类的语言,这个翻译过程就是[编码],通常所说的字符转换为字节. ?有I/O的地方机就会涉及 ...

  5. java kryo_kryo序列化 - Java序列化期间的错误

    我的应用程序有大量域对象,它们通过spring-session被序列化到Redis存储中.我试图使用Kryo(4.0.0)进行自动序列化,而不使对象明确可序列化.kryo序列化 - Java序列化期间 ...

  6. java 序列化慢_java原生序列化慢在哪里?

    Java原生序列化和二进制序列化性能比较 序列化速度 package com.clq.netty.serializable; import java.io.ByteArrayOutputStream; ...

  7. Java序列化的作用和反序列化

    1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...

  8. Java序列化技术与Protobuff

    前言: Java序列化是Java技术体系当中的一个重要议题,序列化的意义在于信息的交换和存储,通常会和io.持久化.rmi技术有关(eg:一些orm框架会要求持久化的对象类型实现Serializabl ...

  9. 深入理解JAVA序列化

    2019独角兽企业重金招聘Python工程师标准>>> 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件.那你最好再阅读该篇文章,文章对序列化进行了更深一 ...

  10. Java 序列化的高级认识

    这篇文章来自:http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html 引言 将 Java 对象序列化为二进制文件的 Java ...

最新文章

  1. 清华朱文武团队斩获NIPS 2018 AutoML挑战赛亚军,高校排名第一
  2. Linux/CentOS优化配置 汇总
  3. 携手Visa IBM Watson IoT加速互联设备转化为潜在销售点
  4. php 7.1/7.3使用 json_encode 函数造成浮点类型数据出现精度问题
  5. sublime 3143 注册码
  6. 组织JSON数据、JSON转换
  7. 《感谢自己的不完美》----经典语录
  8. 密钥库证书的SHA-1指纹
  9. 1.《天空之城》- 尤克里里指弹入门版
  10. 解决No version of NDK matched the requested version编译报错的问题
  11. Windows8.1环境如何删除FlashHelperService.exe文件
  12. 如何在金仓数据库KingbaseES中使用pg_get_function_arg_default函数
  13. word2003下的神秘咒语——灵活的棕色狐狸跳过懒狗
  14. 大师兄科研网_怎样知道一名研究生有没有科研潜力?
  15. jdk-18.0.0.1安装包下载安装教程
  16. 雅思口语备考笔记-Part2练习
  17. 解密大清社会:红楼韵事
  18. 2020年最新SCI期刊影响因子查询
  19. 强力Django+杀手级xadmin全新开发在线教育网站
  20. 联想拯救者Y7000P2019双系统安装与卸载(win10+ubuntu18.04+NVIDIA GeForce RTX2060+CUDA10.0+Cudnn+pytorch)

热门文章

  1. x509证书OpenSSL 数据结构
  2. 最新软件测试面试题,常见面试题及答案汇总,不怕拿不到offer
  3. 微博情感分析的表情符号平滑语言模型(A11, AAAI2012)
  4. Centos - top 命令详解
  5. torch.bernoulli 的使用方法(附代码示例)
  6. 新研究评估Masimo SedLine(R)脑功能监护仪能否预测心跳骤停后ICU患者的神经系统转归和长期生存
  7. anki计算机知识,「背书 刷题神器」 Anki 是应对考试的强力效率 buff
  8. 什么是PCB抄板?主要抄板软件有哪些?
  9. 阿里云创建管理bucket(一)
  10. Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素