欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hessian序列化

程序员文章站 2024-03-24 11:50:52
...
public class Test {
    public static void main(String[] args) throws Exception {
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        Hessian2Output output = new Hessian2Output(os);
        output.writeObject(Person.hehe(123L, "wangyong"));
        output.close();

        ByteArrayInputStream in = new ByteArrayInputStream(os.toByteArray());
        Hessian2Input input = new Hessian2Input(in);
        System.out.println(input.readObject());
    }
}

class Person implements Serializable {
    private Long id;
    private String name;
    private Person(long id, String name) {
        this.id = id;
        this.name = name;
        System.out.println("call dd");
    }

    public static Person hehe(Long id, String name) {
        Person p = new Person(id, name);
        return p;
    }

    @Override
    public String toString() {
        return "id=" + id + ", name=" + name;
    }
}

源码参看dubbo 2.6.1版本自带的hessian框架
Hessian序列化的原理是利用反射,
反序列化时:找到一个性能最高的contructor,入参基本类型传0、false等,引用类型传null(所以如果contructor中判断参数不能为null,则会报错) . contructor可为private

使用示例
源码阅读

hessian和java自带序列化区别

http://www.cnblogs.com/wzyxidian/p/5726584.html
https://blog.csdn.net/chen_fly2011/article/details/56664712