当前位置: 首页 > news >正文

java基于java.io.Serializable接口的序列化方式学习

写在前面

本文看下Java自带的序列化机制。

1:正戏

定义要序列化的类:

package javaserialize;import java.io.Serializable;public class BlackCat implements Serializable {private static final long serialVersionUID = 1L;private String name;public BlackCat() {super();System.out.println("调用黑猫的无参构造");}public BlackCat(String color, String name) {this.name = name;System.out.println("调用黑猫有 color 参数的构造");}@Overridepublic String toString() {return "BlackCat{" +"name='" + name + '\'' +super.toString() +'\'' +'}';}
}

测试类:

package javaserialize;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;public class SuperMain {private static final String FILE_PATH = "./super.bin";public static void main(String[] args) throws Exception {serializeAnimal();deserializeAnimal();}private static void serializeAnimal() throws Exception {BlackCat black = new BlackCat("black", "我是黑猫");System.out.println("序列化前:"+black.toString());System.out.println("=================开始序列化================");ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_PATH));oos.writeObject(black);oos.flush();oos.close();}private static void deserializeAnimal() throws Exception {System.out.println("=================开始反序列化================");ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_PATH));BlackCat black = (BlackCat) ois.readObject();ois.close();System.out.println(black);}
}

运行:

调用黑猫有 color 参数的构造
序列化前:BlackCat{name='我是黑猫'javaserialize.BlackCat@135fbaa4'}
=================开始序列化================
=================开始反序列化================
BlackCat{name='我是黑猫'javaserialize.BlackCat@6acbcfc0'}Process finished with exit code 0

写在后面

参考文章列表

java序列化与反序列化全讲解 。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c++ websocket简单讲解
  • 峟思大坝安全监测系统:科技筑牢工程稳定的基石
  • C++:模拟实现list
  • 国赛论文写作教学指南——模型的建立与求解
  • SprinBoot+Vue学生选课小程序的设计与实现
  • 全国设计院排名 工程总承包营业额二〇二三年排名
  • 线段树维护更多类型的信息
  • 数据爬虫工作中的IP清理频率
  • 代码随想录算法训练营第五十八天 | 图论part08
  • 24数学建模国赛准备!!!!(10——马氏链模型)
  • 【甲方安全建设】富文本编辑器XSS漏洞攻击及防御详析
  • Android APK打包脚本
  • JavaScript练习(二)
  • TCP数据包——报文头部组成
  • golang zap日志模块封装sentry
  • [NodeJS] 关于Buffer
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 230. Kth Smallest Element in a BST
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • crontab执行失败的多种原因
  • Docker容器管理
  • golang 发送GET和POST示例
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript创建对象的四种方式
  • log4j2输出到kafka
  • Python连接Oracle
  • SpingCloudBus整合RabbitMQ
  • supervisor 永不挂掉的进程 安装以及使用
  • Vue.js 移动端适配之 vw 解决方案
  • Vue官网教程学习过程中值得记录的一些事情
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前端之React实战:创建跨平台的项目架构
  • 通信类
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 线性表及其算法(java实现)
  • 在Unity中实现一个简单的消息管理器
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #if #elif #endif
  • #QT(TCP网络编程-服务端)
  • #stm32驱动外设模块总结w5500模块
  • ()、[]、{}、(())、[[]]命令替换
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (C语言)fgets与fputs函数详解
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (每日一问)基础知识:堆与栈的区别
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十八)SpringBoot之发送QQ邮件
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)3D模板阴影原理
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .NET Micro Framework初体验