1 场景

java对象某些时候,需要序列化成字符串存储在数据库中,需要的时候,再将字符串反序列化为java对象。

如使用shiro缓存分布式session,需要将session对象序列化成字符串存储在redis中,来达到分布式应用共享session的功能。

为什么不序列化成json?

​ java对象同样可以转换为json,需要的时候,再转换为java对象。这种情况一般只适用转换自己创建的javaBean对象,如果类是非自己管理的javaBean,对象内部存在没有对外开放set/get方法的属性,转换后将丢失。

​ 序列化自己javaBean对象的好处是,通过序列化后的json字符串,可以很清楚知道被序列化的java对象的内容。

2 应用

2.1 过程描述

序列化过程:

(1)java对象通过对象输出流ObjectOutputStream,写入到内存字节数组输出流ByteArrayOutputStream中

(2)通过内存字节数组输出流ByteArrayOutputStream获取字节数组byte[]

(3)字节数组根据自定义算法转换成字符串(hex/base64等)

反序列化过程:

(1)被序列化后字符串,根据字节数组转换字符串的算法,转换为字节数组byte[]

(2)字节数组通过内存字节数组输入流ByteArrayInputStream写入到对象输入流ObjectInputStream

(3)通过对象输入流ObjectInputStream读取java对象

2.2 字节数组、字符串转换

字节数组转码成字符串依赖如下maven包:

java字符串序列化_java对象序列化为字符串相关推荐

  1. c#将对象序列化为字符串和将字符串反序列化为对象

    asp.net开发中,页面间传值最长用到的是url显式传参,session,application和cookie传值等.对于复杂对象页面传值,如果不考虑性能影响的话,通常可以使用session或者ap ...

  2. 将对象序列化为字符串

    本文翻译自:Serialize an object to string I have the following method to save an Object to a file: 我有以下方法将 ...

  3. java对象序列化为字符串

    文章目录 1 场景 2 应用 2.1 过程描述 2.2 字节数组.字符串转换 2.2.1 hex转码 2.2.2 base64转码 2.3 对象序列化字节数组 2.3.1 使用commons-lang ...

  4. java 嵌套对象序列化_在javascript中将复杂的,嵌套的,用户定义的对象序列化为字符串...

    是的,所以's kind of like you'重新序列化对象数据,而不是类数据 . 变量仍然存在,但关于类的元数据(即方法)没有被保留 . 一个解决方案可能是serialijse . serial ...

  5. java字典序列化_Java对象序列化,Serialize Java Data Object,音标,读音,翻译,英文例句,英语词典...

    补充资料:对象化 标志人类有目的的对象性活动的过程及其结果的哲学范畴.马克思用这个范畴揭示劳动的实现.劳动物化为对象的事实.劳动的实现意味着创造一定的产品,而劳动的产品就是固定在某个对象中物化为对象的 ...

  6. Java对象序列化乱码6_对象序列化成字符串乱码解决

    问题描述: 将一个对象序列化成字符串后,字符串是乱码的,并且反序列化报错. 代码如下: import com.alibaba.fastjson.JSONObject; import org.sprin ...

  7. js对象序列化为json字符串

    网上找了找将js对象序列化为json字符串的方法.结果都不近人意,最后自己写了一个. 注意你得自己为Date增加toString()方法. function Serialize(obj){switch ...

  8. JavaScriptSerializer-枚举的JSON序列化为字符串

    我有一个包含enum属性的类,并在使用JavaScriptSerializer序列化对象后,我的json结果包含枚举的整数值,而不是其string " name". 有没有一种方法 ...

  9. C#序列化反序列化对象为base64字符串

    2019独角兽企业重金招聘Python工程师标准>>> 之所以序列化为base64 字符串 方便传输,可存储在本地 也可以是服务器 public class Serializer{p ...

最新文章

  1. java静态代理与动态代理
  2. First Chapter--Getting Started With Testing
  3. 你一定不能错过,Java视频全套
  4. 最清晰的讲解各种梯度下降法原理与Dropout
  5. Java基础篇(02):特殊的String类,和相关扩展API
  6. html常用标签6-表单标签
  7. Maven实战. 3.7NetBeans Maven插件简单使用
  8. 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,解决
  9. ios java 加密_AES加密 - iOS与Java的同步实现
  10. Git_从远程库克隆
  11. SpaceBase – 基于 Sass 的响应式 CSS 框架
  12. git中Bash基本操作命令
  13. Windows-局域网文件服务器文件共享软件 FtpServer
  14. React中ref的三种获取方式
  15. vision-transformer(b站霹雳吧啦博主)
  16. 解决File “D:\ProgramData\Anaconda3\lib\site-packages\keras\engine\saving.py“,相关问题
  17. Kali——绕过杀毒软件检测工具Veil-Evasion
  18. freeswitch mrcp 源码分析--数据包的发送
  19. liquibase-数据库脚本升级管理
  20. 100 句,读 到 哪 一 句 你 难 过 了?

热门文章

  1. ASP.NET 中关GridView里加入CheckBox 在后台获取不到选中状态的问题
  2. 联想台式计算机重装系统教程,联想台式机重装系统win7图文教程
  3. 台式电脑win7计算机无法启动,台式机无法开机怎么重装win7系统
  4. MATLAB消除图像白边
  5. GitLab用户在组中有五种角色权限说明
  6. 服务器托管数据中心机房选择应该注意哪些事项
  7. java 兔子的生娃问题
  8. Android LCD(一):LCD基本原理篇
  9. 小信号放大电路的频率特性
  10. G.E.M.邓紫棋《句号》MV首播!