Java---序列化

将java对象保存在文件中或者在网络中传输java对象,都需要用到序列化。
序列化 : 将数据结构或对象转换成二进制字节流的过程
反序列化 :将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

serialVersionUID作用于版本控制。反序列化时,会检查serialVersionUID是否和当前类的serialVersionUID一致。如果serialVersionUID不一致则会抛出 InvalidClassException 异常。对于不想进行序列化的变量,可以使用 transient 关键字修饰。

一般使用比较多的是fastjson,一些相关指令:

复制代码
//java对象转json字符串
String s= JSON.toJSONString(new User());
//list集合转json字符串
String s1= JSON.toJSONString(list);
//map集合转json字符串
String s2= JSON.toJSONString(map);

//反序列化
//JSON类的静态方法 parseObject
//传递要返回的JSON字符串和传递java对象的class对象
User user= JSON.parseObject(s, User.class);
//list集合反序列化
List<User> list= JSON.parseArray(s1, User.class);
//map集合反序列化,直接反序列化  map集合没有泛型  没有泛型不安全,需要转换
Map<User,User> map=JSON.parseObject(s2,new TypeReference<Map<User,User>>(){});
相关推荐
devilnumber6 小时前
springboot的保护机制怎么实现的,为何能做到服务不宕机
java·spring boot·后端
未秃头的程序猿6 小时前
一次重复扣款的复盘:分布式锁加错了维度,比不加锁更危险
java·redis·后端
估值探索者6 小时前
【Python量化技术指标实战 02】MACD金叉也分强弱?手工算一次 DIF/DEA 就懂了
java·开发语言·python·股票数据·股票数据api接口
讳疾忌医丶6 小时前
编译器眼中的 C++ 循环:从指针别名、IEEE 754 结合律到 SIMD 语义证明
开发语言·c++
m0_639906946 小时前
MyBatis 核心体系:核心接口、动态 SQL 原理、插件底层机制
java·sql·mybatis
重生六道6 小时前
B站视频时长统计:一段JS脚本搞定分P/合集总时长(附倍速计算)
开发语言·javascript·音视频
XiYang-DING6 小时前
P5528.带过期时间的 LRU 缓存
java·开发语言·缓存
SimonKing6 小时前
DeepSeek 新模型免费白嫖,夯夯夯,赶紧用起来
java·后端·程序员
小徐不徐说6 小时前
C++ 机器视觉入门:从零搭建 AOI 开发环境(OpenCV + CMake)
开发语言·c++·opencv
SabrinaW7117 小时前
基于 C++17 与 RTTR 的注册式对象工厂:配置驱动的动态对象创建
java·前端·数据库