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

青海省建设网站企业新手怎样学校做网站

青海省建设网站企业,新手怎样学校做网站,重庆网红景点排名,哔哩哔哩网站4 3比例怎么做什么是序列化和反序列化 序列化:是将对象转换为可传输或存储的过程, 反序列化:通常是将字节流或是其他数据格式或源数据转为对象的过程。 序列化的作用 对象的持久化:将对象的状态保存到磁盘或数据库中,以便在程序…
什么是序列化和反序列化

序列化:是将对象转换为可传输或存储的过程,

反序列化:通常是将字节流或是其他数据格式或源数据转为对象的过程。

序列化的作用
  1. 对象的持久化:将对象的状态保存到磁盘或数据库中,以便在程序重新启动时恢复对象。
  2. 对象的传输:通过网络或其他通信方式将对象发送到远程系统,实现分布式系统的通信。
  3. 对象的缓存:将对象序列化后存储在缓存中,可以提高读取和响应速度。

总结来说序列化后可以传输,持久化保存到文件或系统缓存中进行交互。

java序列化转成字节流的好处

跨平台兼容以及方便传输和持久化存储: 字节流是一种通用的数据表示方式,可以在不同平台客户端,服务器之间传输或磁盘上或在数据库中存储

占用空间小和隐私安全: 字节流更紧凑,并且不直接暴露对象的内部结构和属性,占用更少的存储空间。

总结将对象序列化为字节流跨平台兼容以及方便传输,紧凑占用空间小和隐私更安全。

java中序列化的实现
类实现 Serializable 接口,

Serializable 接口没有任何方法,只是一个标记接口是一个约定和规范,是为了表明一个类可以被序列化会把对象转换为字节流,具体序列化过程就是通过流将对象写入流 在读出来

import java.io.Serializable;public class MyClass implements Serializable {// 类的成员变量和方法
}
类实现 Externalizable 接口

需要实现 writeExternal 和 readExternal 方法,以提供更高度的自定义序列化和反序列化过程

import java.io.Externalizable;
import java.io.ObjectInput;
import java.io.ObjectOutput;public class MyExternalizableClass implements Externalizable {@Overridepublic void writeExternal(ObjectOutput out) {// 自定义序列化逻辑}@Overridepublic void readExternal(ObjectInput in) {// 自定义反序列化逻辑}
}
将对象转为JSON格式或是解析JSON数据转为对象
// 通过jdk的ObjectMapper将对象转为json
AllPerson person = new AllPerson();
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(person);// 还可以通过alibaba的fastjson或是hutoll的json工具
关于序列化注意的问题
定义serialVersionUID有什么用

serialVersionUID是一个用于版本控制的静态变量,用于确保在对象序列化和反序列化过程中,类的版本一致性

transient修饰成员变量不被序列化

如果在一个序列化的类中一些成员变量不需要或不能被序列化可以使用关键字transient修饰

NotSerializableException

如果一个类没有实现Serializable接口 但是在用流将类序列化时就会报错

关于JSON序列化的理解

将对象解析成JSon格式就是序列化的过程,将JSON数据解析为对象就是反序列化的过程,因为JSON也是一种通用的跨平台的格式

演示了如何将一个实现了 Serializable 接口的对象序列化成字节流,并在反序列化时还原对象
import java.io.*;public class SerializationExample {public static void main(String[] args) {// 创建一个实现了 Serializable 接口的对象MyClass myObject = new MyClass("Hello, Serialization!");// 将对象序列化为字节流try (FileOutputStream fileOut = new FileOutputStream("myobject.ser");ObjectOutputStream out = new ObjectOutputStream(fileOut)) {out.writeObject(myObject);} catch (IOException e) {e.printStackTrace();}// 从字节流中反序列化对象try (FileInputStream fileIn = new FileInputStream("myobject.ser");ObjectInputStream in = new ObjectInputStream(fileIn)) {MyClass restoredObject = (MyClass) in.readObject();System.out.println(restoredObject.getMessage()); // 输出: Hello, Serialization!} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}}
}class MyClass implements Serializable {private String message;public MyClass(String message) {this.message = message;}public String getMessage() {return message;}
}

http://www.yayakq.cn/news/471486/

相关文章:

  • 文化传播公司网站备案自己如何做购物网站
  • 网站建设视频百度网盘下载淄博网站制作定制推广
  • 福建做网站公司广告公司网站
  • 网站本地建设wordpress 4.9.1模板
  • 做网站 学什么找人制作app软件多少钱
  • 南京建网站培训销售网站建设
  • 网站突然不能访问wordpress主题 国外
  • 虚拟主机 删除网站缓存90设计网站怎么样
  • 常用来做网站首页网店推广的常用方法有哪些
  • php网站开发开题报告国家企业信息公示网(广东)
  • 枣庄企业网站推广中国建设银行官网网址多少
  • 江苏建发建设项目咨询有限公司网站上海800做网站
  • 重庆企业公司网站建设哔哩哔哩网页版怎么退出账号
  • 网站做新浪图床寻找做网站的合作伙伴北京
  • php网站如何做多语言政务网站建设工作计划
  • 修改网站需要什么建设银行锦州分行网站
  • 安徽省建设厅八大员报名网站旅游网站手机模板
  • 最好的dm单网站建设微信小程序安装
  • 太原市做网站公司做微信的网站有哪些功能吗
  • it网站设计网页设计需要学什么书
  • 免费注册微信网站自己做文学网站赚钱吗
  • 网站被挂马原因做网站文件下载
  • 张家界建设局网站电话最新新闻热点事件及评论
  • 网站地址是什么定兴做网站的
  • 太原做响应式网站wordpress固定连接设置后
  • 温州网站建设制作网站解析需要多长时间
  • ios移动网站开发工具安徽盛绿建设网站
  • 政务网站建设 紧急通知微信下滑小程序怎么关
  • 漳州微网站建设公司推荐word电子版个人简历免费
  • 站长素材网站官网网络设计与制作是什么意思