[发明专利]一种java对象序列化的方法以及系统有效
申请号: | 201510690629.8 | 申请日: | 2015-10-22 |
公开(公告)号: | CN105335156B | 公开(公告)日: | 2019-01-15 |
发明(设计)人: | 林斌 | 申请(专利权)人: | 福建星网锐捷通讯股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F8/30 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 宋连梅 |
地址: | 350000 福建省福州市仓山区金*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 对象 序列 方法 以及 系统 | ||
本发明提供一种java对象序列化的方法,该方法为:1、对开发程序中一个java对象进行解析,将与解析的该java对象存在引用关系的其他java对象进行集中后形成对象图,并将对象图和该对象图的根对象的信息一起当做元数据信息存储于所述根对象的元数据信息集合中;2、将根对象的元数据信息集合中所有存在引用关系的java对象进行对象实例,并存储于一对象实例集合中;3、将对象实例集合中的各对象实例进行编号,将根对象的根对象实例标记为0号,其余根据对象实例的引用关系的顺序从0后进行编号;4、将所有对象实例按编号顺序进行序列化后存储于一二进制的数据结构体中。本发明提高了序列化的性能,提高了逆序列化的速度,避免了Java反射造成的性能损耗。
技术领域
本发明涉及Java应用远程调用技术领域,尤其涉及一种java对象序列化的方法以及系统。
背景技术
在一些分布式的开发程序中,为了方便使用,常常需要将Java对象以二进制作为数据进行传输。一些本地应用场景也需要将内存中的java对象以二进制的形式保存到磁盘文件中。这种将Java对象转变为二进制的行为称之为序列化。Java语言自身具备了序列化机制,然而因为使用不方便并且性能低下,故而市面上出现了许多第三方的序列化库。但是这些序列化库都不具备足够强大的性能。
发明内容
本发明要解决的技术问题之一,在于提供一种java对象序列化的方法,提高了序列化的性能,提高了逆序列化的速度,避免了Java反射造成的性能损耗。
本发明问题之一是这样实现的:一种java对象序列化的方法,包括如下步骤:
步骤1、对开发程序中一个java对象进行解析,将与解析的该java对象存在引用关系的其他java对象进行集中后形成对象图,并将对象图和该对象图的根对象的信息一起当做元数据信息存储于所述根对象的元数据信息集合中;
步骤2、将根对象的元数据信息集合中所有存在引用关系的java对象进行对象实例,并存储于一对象实例集合中;
步骤3、将对象实例集合中的各对象实例进行编号,将根对象的根对象实例标记为0号,其余根据对象实例的引用关系的顺序从0后进行编号;
步骤4、将所有对象实例按编号顺序进行序列化后存储于一二进制的数据结构体中。
进一步的,所述步骤1中对开发程序中一个java对象进行解析,将与解析的该java对象存在引用关系的其他java对象进行集中后形成对象图,具体为:获取开发程序中各个java对象下所有的属性元素;判断每一个属性元素是否是基本类型,或是否是基本类型的包装类型,或是否是基本类型的数组,或是否是基本类型的包装类型的数组;都不是,则将该元素进行记录,再分析下一个对象;属性元素是四种情况中的一种,则,将属性元素集中在基本元素集合中,判断位于基本元素集合中的各个java对象对应的属性元素是否存在引用关系,是,则将存在引用关系的java对象进行集中后形成对象图,否,则不进行操作。
进一步的,所述步骤2具体为:对象图包含从根对象开始的所有对象的关联关系,以及每个对象对其他对象的依存关系;依靠对象图,给定根对象实例,从根对象出发,所有直接挂靠在根对象下的对象得到一个集合,使用这个集合信息从根对象实例中取得所有直接挂靠在根对象实例下的对象实例;每次取得的实例都放入同一个对象实例集合中;重复这个过程,直到没有新的对象被发现。
进一步的,所述步骤4具体为:将所有对象实例的类名进行序列化后存储在二进制的数据结构体的头部,按照编号顺序将所有对象实例的内容值进行序列化后存储在二进制的数据结构体的中段。
本发明要解决的技术问题之二,在于提供一种java对象序列化的系统,提高了序列化的性能,提高了逆序列化的速度,避免了Java反射造成的性能损耗。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网锐捷通讯股份有限公司,未经福建星网锐捷通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510690629.8/2.html,转载请声明来源钻瓜专利网。