java序列化

简介: # 背景 java对象是在jvm中,如果jvm销毁,那么对象都不存在了。如果想继续使用java对象的话,需要用到序列化,将java中的对象转化为字节序列,用于存储和运输; 那么可以将DB理解为一种序列化,将java对象序列化后存储在DB中,将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

虽千万人,吾往矣!
目录
相关文章
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
11月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
496 1
|
11月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
448 1
|
JSON Java 数据库连接
|
存储 安全 Java
深入理解Java序列化接口及其实现机制
记住,序列化不仅仅是把对象状态保存下来那么简单,它涉及到类的版本控制、安全性和性能等多个重要方面。正确理解和实现Java序列化机制对于构建高效、安全和可维护的Java应用至关重要。
388 0
|
JSON NoSQL Java
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
这篇文章介绍了在Java中使用Redis客户端的几种方法,包括Jedis、SpringDataRedis和SpringBoot整合Redis的操作。文章详细解释了Jedis的基本使用步骤,Jedis连接池的创建和使用,以及在SpringBoot项目中如何配置和使用RedisTemplate和StringRedisTemplate。此外,还探讨了RedisTemplate序列化的两种实践方案,包括默认的JDK序列化和自定义的JSON序列化,以及StringRedisTemplate的使用,它要求键和值都必须是String类型。
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
470 5
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
存储 缓存 安全
🌟Java零基础:深入解析Java序列化机制
【10月更文挑战第20天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
377 3
|
Java 数据库 对象存储
Java 序列化详解
本文详细解析了Java序列化的概念与应用。通过具体实例,深入探讨了其在对象存储和传输中的作用及实现方法,帮助读者理解如何有效利用这一特性来简化数据交换,并对其实现机制有了更深入的认识。
410 9