java序列化
# 背景
java对象是在jvm中,如果jvm销毁,那么对象都不存在了。如果想继续使用java对象的话,需要用到序列化,将java中的对象转化为字节序列,用于存储和运输;
那么可以将DB理解为一种序列化,将java对象序列化后存储在DB中,将java对象保存在文本中也是一种序列化
# 细节
需要被序列化的类,需要实现Serializable接口
虽然Serializable接口是空的,没有任何方法,但也要实现,起到标识的作用
同一字节流中的引用是得到保存的
User user = new User("jwen");
Order o1 = new Order(user, "o1");
Order o2 = new Order(user, "o2");
将这两个对象o1和o2序列化保存在同一文本中(同一输出流),会发现两个对象的o1.user == o2.user
但将两个对象分别保存在不同文件中,file1和file2的话,引用是不一样的 o1.user != o2.user
反序列化没有调用构造函数
public class User implements Serializable {
private String name;
private int id = 1;
public User(String name, int id) {
System.out.println("构造函数调用");
this.name = name;
}
}
这里的构造方法不会被调用
序列化Id标识版本信息
private static final long serialVersionUID = -5809782578272943999L;
# 后记
推荐博客:https://www.cnblogs.com/xdp-gacl/p/3777987.html
虽千万人,吾往矣!低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
初识 JSP---(servlet / ServletConfig接口 / ServletContext接口)
servlet简介 Java Servlet是和平台无关的服务器端的组件,它运行在servlet容器中。Servlet容器负责servlet和客户的通信以及调用servlet的方法,servlet和客户的通信采用的是“请求/响应”的模式。 servlet可完成如下功能: 1.创建并返回客户请求的动态HTML页面 2.创建可嵌入现有HTML页面的部分HTML页面(HTML片段) 3.去其他服务器资源交互(如数据库或基于java的应用程序)进行通信 Servlet介绍 –Java Servlet(server applet) –Java Servlet继承结构 Servlet接口(javax.servlet.Servlet) GenericServlet(javax.servlet.GenericServlet) HttpServlet(javax.servlet.http.HttpServlet) 创建一个Servlet –继承HttpServlet –重写service(doGet、doPost)方法 –在web.xml中配置Servlet –部署和执行 Servlet的API ...
- 下一篇
Java生产填坑经历之全面回忆
屏幕快照 2018-07-30 下午4.01.49.png 生产填坑的经历为什么要称之为全面回忆呢,因为恰巧笔者之前看了一部科幻电影,名字就叫《全面回忆》 Total Recall,该片于2012年10月20日在中国上映,豆瓣评分7.0。 全面回忆的剧情简介...... 欢迎来到Rekall,它是一个能够把你的梦境变成现实的工厂。主人公道格拉斯·奎德(柯林·法瑞尔 Colin Farrell 饰)是一名普通的工厂工人。尽管他有一位漂亮的妻子(凯特·贝金赛尔 Kate Beckinsale 饰),两人看似恩爱,但他内心似乎依然不满足。思绪旅行听起来像是个完美的假期,让他从沮丧的生活中得到放松——作为一名特工的真实记忆可能正是他所需要的。但是当这个过程出现可怕的异常时,奎德变成了一个被追杀的逃犯。他发现自己正在躲避受考哈根长官(布莱恩·科兰斯顿 Bryan Cranston 饰)控制的警察,没有一个人是奎德可以信任的,除了一名叛军的女战士(杰西卡·贝尔 Jessica Biel 饰),她为地下抵抗组织的首领(比尔·奈伊 Bill Nighy 饰)工作。幻想和现实之间的界线变得模糊,他的命运...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)