美文网首页
序列化工具类

序列化工具类

作者: 咪雅先森 | 来源:发表于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;
     }
    }
    

    相关文章

      网友评论

          本文标题:序列化工具类

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