标签:注意事项 默认 安全 反序 final static 内存 例子 静态变量
一 什么叫序列化
通俗点讲:它是处理对象流的一种机制,即可以很方便的保存内存中java对象的状态,同时也为了方便传输。
二 序列化有什么作用
1.方便传输,速度快,还很安全,被调用方序列化,调用方反序列化即可拿到传输前最原始的java对象,常用于不同进程之间的对象传输
2.方便存储,不管是存储成文件还是数据库,都行,存储为文件,下回要用可以直接反序列拿到对象
三 怎么序列化和反序列化
实现序列化接口就行(里面什么方法都没有,不用管的,只是一个标记接口而已)Serializable;
至于他们的代码怎么写,网上例子很多,随便搜一下就行了
四 序列化时需要注意事项
为了不必要的报错麻烦: 序列化时最好是定义序列化版本id 即 public static final Long seriaVersionUID = 1L (默认) 或者 xxxxx L(自定义64位都行)
因为反序列化会判断序列化中的id和类中的id是否一样,如果不定义虽然会自动生成,但如果后面改了东西列,所以还是自觉点定义一个id,省去好多麻烦
同时记住静态变量不会被序列化的,它可不在堆内存中,序列化只会序列化堆内存
标签:注意事项 默认 安全 反序 final static 内存 例子 静态变量
原文地址:https://www.cnblogs.com/feichen-66/p/11259528.html