大家好,又见面了,我是你们的朋友全栈君。在网上看了一下java的serialized技术,具体就没怎么测试,只是小小总结了一下。
serialized主要用于一下情况:
a)对对象进行读写操作时;
b)使用套接字在网络上传输对象数据时;
c)通过RMI传输对象时;
若要序列化对象,则只需implements Serializable接口即可。序列化动作可以在我们需要时进行,即使项目已经进入尾声。
我们在序列化对象时,需要主要java的序列化有几个特殊地方:
1.static变量不会被序列化。即使我们在反序列后能够获取到它的值,但请注意,这个值是static变量缓存在内存中。
2.transient修饰的变量意为临时变量也不会被序列化。
同时我们在implements Serializable后,会发现类中多了private static final long serialVersionUID 变量,请注意该变量有其自已的作用。在反序列化时,jvm会使用被反序列化文件中的serialVersionUID 与本地实体类中的serialVersionUID 进行对比,以判断两者是否是同一个版本,如果是,则正常反序列化,否则jvm会提示版本不一致异常。如果实体类中没有该serialVersionUID ,则jvm则会在每次编译时自动为其生成一个serialVersionUID 。个人建议保存其serialVersionUID ;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148047.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...