美文网首页
序列化工具类

序列化工具类

作者: 咪雅先森 | 来源:发表于2018-06-11 01:36 被阅读0次

这个问题之前面试也被问过。聊天的时候面试官也把具体的方法说了出来,验证了一下是这样的情况。
不序列化的存储方法就是将对象转成 json 串。
序列化的优点是反序列化时不需要提供类型信息(class),但缺点是序列化后的结果非常庞大,是JSON格式的5倍左右,这样就会消耗redis服务器的大量内存.

ObjectOutputStream/ObjectIntputStream 的具体在 I/O 流笔记中有更祥细的说明。

工具类实现

public class SerializeUtil {
   public static void main(String [] args){
       Jedis jedis = new Jedis("xxx.xxx.xxx.xxx");
       String keys = "name";
       // 删数据
       //jedis.del(keys);
       // 存数据
       jedis.set(keys, "zy");
       // 取数据
       String value = jedis.get(keys);
       System.out.println(value);
       
       //存对象
       Person p=new Person();  //peson类记得实现序列化接口 Serializable
       p.setAge(20);
       p.setName("嗯哼嗯哼");
       p.setId(1);
       jedis.set("person".getBytes(), serialize(p));
       byte[] byt=jedis.get("person".getBytes());
       Object obj=unserizlize(byt);
       if(obj instanceof Person){
           System.out.println(obj);
       }
   }
   
   //序列化
   public static byte [] serialize(Object obj){
       ObjectOutputStream obi=null;
       ByteArrayOutputStream bai=null;
       try {
           bai=new ByteArrayOutputStream();
           obi=new ObjectOutputStream(bai);
           obi.writeObject(obj);
           byte[] byt=bai.toByteArray();
           return byt;
       } catch (IOException e) {
           e.printStackTrace();
       }
       return null;
   }

//反序列化

public static Object unserizlize(byte[] byt){
     ObjectInputStream oii=null;
     ByteArrayInputStream bis=null;
     bis=new ByteArrayInputStream(byt);
     try {
         oii=new ObjectInputStream(bis);
         Object obj=oii.readObject();
         return obj;
     } catch (Exception e) {
         
         e.printStackTrace();
     }
     return null;
 }
}

相关文章

  • Avro 对象序列化与反序列化,及转Json对象序列化处理

    Avro 工具类 序列化与反序列化 public class AvroHelper { public byte[]...

  • Kryo

    使用Kryo序列化和反序列化https://github.com/EsotericSoftware/kryo工具类:

  • Apache Commons Lang3之Serializati

    概述 SerializationUtils是Java序列化工具类,主要有以下几个功能:使用序列化进行深度克隆序列化...

  • Protostuff

    使用Protostuff进行序列化和反序列化(官网:http://www.protostuff.io/)工具类如下:

  • springboot redis整合笔记

    引入 application.yml配置 redis配置 定义序列化方式 缓存工具接口 缓存工具实现类

  • Jackson 格式化输出

    1. 未格式化的打印 (1)需要序列化的类 (2)序列化工具类 (3)测试类 控制台输出: 2. 格式化输出 运行...

  • 序列化工具类

    这个问题之前面试也被问过。聊天的时候面试官也把具体的方法说了出来,验证了一下是这样的情况。不序列化的存储方法就是将...

  • C#实体类属性大写转JSON变成小写

    C#服务实体类序列化后属性名称开头如果有大写使用JAVA 反序列化工具时无法对应实体类小写字母,需要把序列化里面属...

  • Android crash之Parcelable

    Parcelable的类,不要继承,不然工具生成出来的代码把父类的序列化部分代码异常 = =

  • SpringBoot 序列化器注解使用方法

    Json解析工具Jackson @JsonIgnoreProperties此注解是类注解,作用是json序列化时将...

网友评论

      本文标题:序列化工具类

      本文链接:https://www.haomeiwen.com/subject/jpcceftx.html