[发明专利]一种对象实例化的方法及装置有效
申请号: | 201910932066.7 | 申请日: | 2019-09-29 |
公开(公告)号: | CN110737434B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 丁鹏辉 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/30 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 刘小峰 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 对象 实例 方法 装置 | ||
本发明涉及了一种对象实例化的方法,其中该方法包括:定义类并为所定义的类增加对象复用全局标记,其中该对象复用全局标记初始为假;以该类创建携带对象复用全局标记的对象,并将类的以及对象携带的对象复用全局标记的状态设置为真;响应于对该对象发起复用,检查类的对象复用全局标记的状态;响应于类的对象复用全局标记的状态为真,在缓存空间中的所有对象中查找对象复用全局标记为真且类型相符合的对象以对该对象进行复用。利用本发明的方法,无需多次实例化对象,直接使用内存中已经存在的对象,实现了类的实例化对象的复用,并且有效区分具备复用功能的类和不具备服用功能的类,节约了内存空间资源的占用,提高了程序运行的效率。
技术领域
本发明涉及面向对象编程技术领域。本发明进一步涉及一种对象实例化的方法及装置。
背景技术
在面向对象编程中,一切皆为对象,而创建对象需要有一个模板,这个模板就是面向对象中的类class,对这个类进行实例化的产物就是对象object。
现有技术中,在面向对象编程的编程语言中,尤其是对于java语言来说,由类实例化对象是通过以定义的类创建(new)一个对象的方式进行实例化。在需要使用一个方法进行处理逻辑,或者使用一个对象进行封装数据的时候,往往进行的第一步操作是对要使用这些对象的类进行类似new操作的实例化,从而得到对象来进行数据的处理。每次用到此类的对象的时候new一个对象进行使用,会造成内存中同时存在很多类型结构相同、功能相同、作用相同的对象,对内存空间造成了极大的浪费。虽然现在出现了池的概念,但是从某种程度上说,池的存在依然会造成内存空间的无效占用及浪费。
为了解决以上问题,需要提出了一种对象实例化的方法以减少内存占用的情况。
发明内容
一方面,本发明基于上述目的提出了一种对象实例化的方法,其中该方法包括以下步骤:
定义类并为所定义的类增加对象复用全局标记,其中该对象复用全局标记初始为假;
以该类创建携带对象复用全局标记的对象,并将类的以及对象携带的对象复用全局标记的状态设置为真;
响应于对该对象发起复用,检查类的对象复用全局标记的状态;
响应于类的对象复用全局标记的状态为真,在缓存空间中的所有对象中查找对象复用全局标记为真且类型相符合的对象以对该对象进行复用。
根据本发明的对象实例化的方法的实施例,其中以类创建携带对象复用全局标记的对象,并将该类的以及该对象携带的对象复用全局标记的状态设置为真进一步包括:
检查类的对象复用全局标记,并响应于类具有对象复用全局标记,以类创建携带对象复用全局标记的对象。
根据本发明的对象实例化的方法的实施例,其中方法进一步包括:
响应于在缓存空间中的所有对象中没有找到对象复用全局标记为真且类型相符合的对象,以该类重新创建携带对象复用全局标记的对象。
根据本发明的对象实例化的方法的实施例,其中响应于对该对象发起复用,检查该类的对象复用全局标记的状态进一步包括:
响应于对象复用全局标记为假,以该类创建携带对象复用全局标记的对象。
根据本发明的对象实例化的方法的实施例,其中对象复用全局标记为注解或xml标记。
另一方面,本发明还提出了一种对象实例化的装置,其中该装置包括:
至少一个处理器;和
存储器,该存储器存储有处理器可运行的程序指令,该程序指令在被处理器运行时执行以下步骤:
定义类并为所定义的类增加对象复用全局标记,其中该对象复用全局标记初始为假;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910932066.7/2.html,转载请声明来源钻瓜专利网。