java对象序列化和反序列化
来源:互联网 发布:网络映射有什么用 编辑:程序博客网 时间:2024/06/16 00:28
java对象序列化和反序列化
介绍
序列化指的是将内存中的java对象保存到磁盘问价中(字节码保存),反序列化是将磁盘中的文件加载到内存对象中。java对象序列化:将内存中的java对象持久化到磁盘文件中java对象反序列化:将磁盘文件中的字节码文件转为内存中java对象使用备注:需要序列化的对象通常需要实现序列化接口(不管是JDK还是第三方提供的)对象序列化主要功能:1、把对象的字节序列永久地保存到硬盘文件中2、用作网络传输字节序列
Serializable接口说明
Serializability of a class is enabled by the class implementing thejava.io.Serializable interface. Classes that do not implement thisinterface will not have any of their state serialized ordeserialized. All subtypes of a serializable class are themselvesserializable. The serialization interface has no methods or fieldsand serves only to identify the semantics of being serializable.Serializable接口是一个标记接口,其内部并没有提供接口方法。每一个是实现了该接口的类都拥有一个版本标识号。serialVersionUID的取值是Java运行时环境根据类的内部细节自动生成的。如果对类的源代码作了修改,再重新编译,新生成的类文件的serialVersionUID的取值有可能也会发生变化。类的serialVersionUID的默认值完全依赖于Java编译器的实现,对于同一个类,用不同的Java编译器编译,有可能会导致不同的 serialVersionUID,也有可能相同。为了提高serialVersionUID的独立性和确定性,强烈建议在一个可序列化类中显示的定义serialVersionUID,为它赋予明确的值。
code 如下
/** * * @author xuyi * @Time 2016年7月3日 下午8:45:29 * @类名 User * @功能描述: * @春风十里不如你 * @备注: */public class User implements Serializable { // 实现序列化接口 private static final long serialVersionUID = 1390629548621286444L; private int userId; private String info; //setter和getter方法}
java对象序列化
/** * * @author xuyi * @Time 2016年7月3日 下午8:45:29 * @类名 User * @功能描述: * @春风十里不如你 * @备注: */public class User implements Serializable { // 实现序列化接口 private static final long serialVersionUID = 1390629548621286444L; public transient String transientVlaue = "transientVlaue";//不会被序列化 public volatile String temName = "volatileValue"; public static String name = "staticValue"; private int userId; private String info; //总结static和transient修饰的变量不会被序列化 //注意:静态修饰的变量虽然可以被存储到序列化文件中,但是在使用对象 输出流的时候已经不能再修改其值了,因为静态变量是在类加载的时候就已经加载到内存了。}
总结
java对象序列化就是将java对象转为字节序列,通常持久化到磁盘文件中。java对象反序列化就是将字节序列加载到内存转为java对象过程瞬态transient修饰的变量无法被序列化序列化作用:1、对象持久化存储2、对象网络传输
参考
1、http://blog.csdn.net/wangloveall/article/details/7992448/
0 0
- java对象的序列化和反序列化
- Java对象的序列化和反序列化
- java之对象序列化和反序列化
- Java对象序列化和反序列化
- Java对象的序列化和反序列化
- Java对象的序列化和反序列化实践
- Java对象的序列化和反序列化
- Java对象的序列化和反序列化
- Java对象的序列化和反序列化实践
- Java对象的序列化和反序列化实践
- Java对象的序列化和反序列化实践
- java对象的序列化和反序列化
- [Java] 对象的序列化和反序列化
- java对象的序列化和反序列化
- Java对象的序列化和反序列化
- Java对象序列化和反序列化
- 浅谈Java对象的序列化和反序列化
- Java对象的序列化和反序列化实践
- 求矩阵中最大(小)值并返回其行列号
- hdu2073 无限的路 瞎搞
- HDU5382 GCD?LCM!
- Python random模块
- PostgreSQL笔记整理
- java对象序列化和反序列化
- python下如何安装.whl包?
- Java - Map
- IGC data
- java中定义16十六进制数组
- struts2环境搭建
- 分治算法
- JDBC、JDBC框架、数据库事务、数据库连接池
- java中定义16十六进制数组