java序列化知识整理
来源:互联网 发布:大屏幕数据展示 html5 编辑:程序博客网 时间:2024/06/17 03:43
1. 什么是序列化?
序列化就是只把一个对象串行化成一个字节流,用于网络传输或者持久化。
2. 序列化的使用场景?
a). 把内存中的对象持久化到文件或者数据库中;
b). 对象在网络上传输。
3. 序列化的实现?
1). 实现Serializable接口:
此方法简单,没有任何需要实现的方法。
2). 实现Externalizable 接口: Externalizable 是Serializable的子接口
此方法需要实现的方法,可以自己控制序列化的属性。
4. Serializable序列化的使用注意点
1. 序列化ID必须一致。
虚拟机允许反序列化有三个条件:类路劲一致,功能代码一致,两个类的序列化ID一致;
2. 对象A中引用对象B,A实现了序列化,则B也会被序列化;
3. 父对象实现序列化,则子对象也会被序列化
4. 子类对象被序列化,则父类对象不会被序列化,反序列化时调用默认的无参构造函数构造对象;
5. 序列化的对象中有属性前有transient修饰符时,该属性不会被序列化,因为该transient属性是临时的;
6. 序列化的对象中有属性前有static修饰符时,该属性不会被序列化,因为static代表次属性是类属性不是对象属性;
7. 序列化的对象中有属性属于敏感字段,需要加密传输,则需要自定义序列化和反序列化。需要注意的是,即使对象的属性是private也是不安全的,只有人工进行安全处理。
自定义方法:在序列化的类中自定义writeObject() 和 readObject()方法,虚拟机会试图调用对象类里的 writeObject 和 readObject 方法,进行用户自定义的序列化和反序列化,
如果没有这样的方法,则默认调用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。
6. 序列化存储规则:当写入文件的为同一对象时,并不会再将对象的内容进行存储,而只是再次存储一份引用,文件大小不会翻倍,只是略有增加(新增引用的控制信息)。
- java序列化知识整理
- Java序列化高级知识
- Java序列化相关知识
- java序列化相关内容整理
- java序列化的相关知识
- Serializable java序列化知识汇总
- Java对象序列化知识小结
- JAVA异常知识整理
- Java知识整理
- Java知识整理
- java文件知识整理
- Java多线程知识整理
- java 队列知识整理
- Java知识整理
- java知识整理
- Java知识整理
- java知识体系整理
- Java知识链整理
- Android SwiperRefreshLayout 首次加载显示刷新动画
- java实现矩阵快速幂算法
- 谈.Net委托与线程——创建无阻塞的异步调用(二)
- 推荐两个界面原型设计工具--GUIDesignStudio 和 Mockups For Desktop
- iOS---从浏览器启动应用程序
- java序列化知识整理
- Mac OS X Terminal:终端使用初级教程
- 《剑指Offer》面试题15:链表中倒数第k个结点
- getCurrentSession 与 openSession() 的区别
- 判断回文
- c++学习指南
- ABAP初学者程序规范注意事项1
- 谈.Net委托与线程——解决窗体假死
- java实现快速排序