什么是序列化?如何实现序列化
1.概念
序列化:把Java对象转换为字节序列的过程
反序列化:把字节序列恢复为Java对象的过程
2.用途
对象的序列化主要有两种用途
1.把对象的字节码永久保存到硬盘上,通常放在一个文件中
2.在网络上传送对象的字节序列
3.对象序列化
只有实现了Serializable和Externalizeble的接口的类才能实现序列化。
Java.IO.ObjectOutputStream代表对象输出流。writeObject(Object obj)方法可对参数指定的obj对象进行序列化。
Java.IO.ObjectInputStream代表对象输入流,它的readObject()方法可以反序列化。
4.transient关键字的作用
在不需要序列化的属性前添加transient,序列化对象的时候,这个属性就不会被序列化。
5.被transient关键字修饰过的变量真的不能序列化吗
实现了Externalizable接口即使用transient关键字修饰也不起作用。
6.静态变量能被序列化吗?没有被transient关键字修饰呢
静态变量是不会被序列化的,即使没有transient。
在JDK8之前静态成员变量存放在方法区;JDK8之后取消了永生代,取而代之的是元空间,永生代中的静态成员变量迁移到了堆中。方法区是JVM的规范,永生代是方法区的具体实现)
而序列化是写到磁盘上的,所以JVM查找静态变量的值,是从全局查找的,而不是磁盘上。
7.总结
Java的transient关键字为我们提供了便利,只需要实现Serializable接口,将不需要序列化的属性添加关键字transient,序列化对象的时候就不会序列化到指定目的地。
什么是序列化?如何实现序列化相关推荐
- java 对象怎么序列化,java对象序列化总结
java对象序列化小结 百度百科上介绍序列化是这样的: 序列化 (Serialization): 将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储 ...
- 解决Python自带的json序列化工具不能序列化datetime类型数据问题
解决Python自带的json序列化工具不能序列化datetime类型数据问题 参考文章: (1)解决Python自带的json序列化工具不能序列化datetime类型数据问题 (2)https:// ...
- Java序列化闲聊:序列化和Json
前言 其实我挺纠结的,在纠结到底要不要写这个模块的博客,因为序列化这个模块说简单,按照一些人的说法,其实也就是调两个函数的事情,说困难,铺开就让人感觉范围很广. 序列化 什么是序列化,我们在编程的时候 ...
- Redis序列化、RedisTemplate序列化方式大解读,介绍Genericjackson2jsonredisserializer序列化器的坑
前言 上一篇已经介绍了优雅的操作Redis: [小家Spring]Spring Boot中使用RedisTemplate优雅的操作Redis,并且解决RedisTemplate泛型注入的问题.本篇着重 ...
- json 序列化 java_Java JSON序列化杂谈
在C#中序列化是比较容易的,如果不用第三方的类库,那么C#提供的两个对象也够我们使用,一般的操作是定义一个不含有方法的类,这个类里面定义了要序列化的对象的属性,因为我C#用的比较多,这里直接给出泛型, ...
- Java中 byte[]数组序列化和fastjson序列化区别
Java中 byte[]数组序列化和fastjson序列化区别 Java中,对于对象可以通过序列化成byte数组或者序列化成json形式,这里做下两者的对比. 首先看下实现方式: 1 byte数组序列 ...
- java get方法不序列化_java常用序列化与反序列化方法
序列化工具类 序列化即将对象序列化为字节数组,反序列化就是将字节数组恢复成对象. 主要的目的是方便传输和存储. 序列化工具类: public class SerializeUtil { private ...
- Atitit php序列化 php的serialize序列化和json序列化
Atitit php序列化 php的serialize序列化和json序列化 PHP 对不同类型的数据用不同的字母进行标示,Yahoo 开发网站提供的Using Serialized PHP with ...
- java序列化深克隆_克隆可序列化和不可序列化的Java对象
java序列化深克隆 开发人员经常依靠3d方库来避免重新发明轮子,尤其是在Java世界中,Apache和Spring这样的项目如此盛行. 在处理这些框架时,我们通常很少或根本无法控制其类的行为. 这有 ...
- 使用不可序列化的属性序列化Java对象
人们可能有多种原因想要使用自定义序列化而不是依赖Java的默认序列化. 最常见的原因之一是为了提高性能,但是编写自定义序列化的另一个原因是不支持默认序列化机制. 具体来说,如本博文所述,自定义序列化可 ...
最新文章
- Nginx的配置文件
- 提交svn的时候,提示丢失了预定增加的xxxx
- java 注解 demo_JAVA语言注解概念使用及Demo讲解
- Android Studio如何发布APK
- 11.19 rpm:RPM包管理器
- Masm for Windows集成开发环境编写汇编程序
- 在Java中给出的时间
- RequestDispatcher对象的应用-请求包含
- TensorFlow:模型的保存与恢复(Saver)
- python怎么读取中文文件-Python3 解决读取中文文件txt编码的问题
- vscode插件开发总结
- java js加密_JS加密解密
- 三级java_java三级(最全的题库).doc
- ceph的 cache tier实现分析
- 解决OneNote 无法粘贴图像 的问题
- Oracle数据更新
- Unity模型动画骨骼错位解决办法
- MYSQL——MYSQL中常见的数据库引擎
- sqlserver批量(部分)导出一张表中的数据
- 【Beta阶段】第二次Scrum Meeting