浏览 1707 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-25
最后修改:2009-03-25
看了下phprpc和hessian的效率对比,没有去研究,倒是之前开发gwt时候看过其序列化。 序列化的本意是, 将不同类型的对象转换成统一的字节流, 便于存储和传输. gwt中java对象经过怎样的序列化,传给前端 js 的呢, 以下简单介绍: 相关代码,可以在com.google.gwt.user.server.rpc.impl中自行调试。 某方法返回int数据为100,后端发送到前端如下: [100,[],0,3]//0,3应该为版本号,[]表示对象,100为数据 解析: google web toolkit中,也有自己的序列化机制。 所用到的序列化,如一个Book对象, private String author = “WANGZX”; private float price = 200.0; private Date publishedDate =new Date(); private String title="Title"; 序列化后如下:[4,1237909072078,3,200.0,2,1,["demo.javaclient.MyClient$Book/1105674023","WANGZX","java.util.Date/1659716317","TITLE"]] 格式如下: [数据index[对象列表]] 数据index从右往左读 对象列表从左往右读 如果返回是对象,则根据index在列表中找需要序列化的对象。 返回Book对象: A.1对应demo.javaclient.MyClient$Book/1105674023 B.author index为 2,读得一个String C.price是基础数据类型,则直接读取200.0 D.Date index为3,读得java.util.Date/1659716317 由于Date是对象,左侧index读得的是此对象的数据1237909072078 E.title index为4,读得数据为title 如果返回同一个类,则对象列表中只会出现一次。 如果返回同一个字符串数据,则对象列表中也只会出现一次。 由此看来,gwt 序列化优化了String字符串和类名。只会在返回中出现一次,基本数据类型会多次出现。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-26
分析得好,进行底层研究,有乐趣把
|
|
返回顶楼 | |
发表时间:2009-03-26
wangzaixiang 写道 分析得好,进行底层研究,有乐趣把
哈哈哈哈,那是对你的东西进行分析而已~~~~~~ 老大来开博啦? |
|
返回顶楼 | |