序列化和反序列化
一、定义
序列化:是指把对象转换为字符串的过程,所用的方法是JSON.stringify();
反序列化:是指把字符串转换为对象的过程,所用的方法是JSON.parse() ;
二、优点
1.可以将对象转为字节流存储到硬盘上,当JVM停机的话,字节流还会在硬盘上默默等待,等待下一次JVM的启动,把序列化的对象,通过反序列化为原来的对象,并且序列化的二进制序列能够减少存储空间,永久性保存对象。
2.序列化成字节流形式的对象可以进行网络传输(二进制形式),方便了网络传输。
3.通过序列化可以在进程间传递对象。
三、缺点
1.无法跨语言
2.序列化后流的长度比通过缓冲区处理要大得多
3.序列化性能太低
四、使用场景
1.分布式传递对象,或则网络传输,需要序列化
2.序列化可以保持对象的状态
3.远程调用,分布式存储,缓存存储
4.我调用你的JVM的方法,结果返回到我的JVM上进行处理
5.数据传输并复原。
6.像银行卡,密码等等这些字段不能被序列化
五、注意事项
1.序列化是,只对对象的状态进行保存,而不管对象的方法。
2.当一个对象的实例变量引用其他对象,序列化该对象时也要把引用对象进行序列化。
3.当一个父类实现序列化,子类自动实现序列化,不需要显式实现接口。
4.并非所有的对象都可以序列化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义