一种基于JAVA的内存溢出方法技术

技术编号:33550274 阅读:10 留言:0更新日期:2022-05-26 22:46
本发明专利技术公开了一种基于JAVA的内存溢出方法,它涉及IT与软件开发技术领域。其步骤为:首先将栈定义为root;使用for循环的普通遍历方式或者使用栈的递归遍历方式,遍历栈中所有的对象的引用;使用遍历栈对象的方法再遍历一遍栈中的对象;通过栈中的对象的引用去查找堆中没有被指向的对象,使用内置的callable函数检查对象是否可调用,未被引用的对象为不可到达对象,将不可到达的对象进行垃圾回收,从而减少内存泄漏。本发明专利技术合理安排数据占有空间的利用,使不需要的资源空间得到释放,减少内存泄漏的隐患,减少从而导致的内存溢出情况,使服务器正常运行,应用前景广阔。应用前景广阔。应用前景广阔。

【技术实现步骤摘要】
一种基于JAVA的内存溢出方法


[0001]本专利技术涉及的是IT与软件开发
,具体涉及一种基于JAVA的内存溢出方法。

技术介绍

[0002]在日常生产开发中,当程序在服务器无法正常工作时,服务器日志可能会生成内存溢出的报错,这种原因是因为JVM虚拟的内存空间不足以支持程序的正常运行,造成这种情况的一部分原因是资源无法合理运用。虽然java是垃圾回收语言的一种,开发者无需特意管理内存分配,但是JAVA中还是存在着许多内存泄漏的可能性,如果不好好处理内存泄漏,会导致APP内存单元无法释放被浪费掉,最终导致内存全部占据堆栈(heap)挤爆进而程序崩溃。目前,一般解决的方式多为扩展物理机内存,或者实现内存监控操作,发现内存泄漏自动重启系统等,但无法从根本原因上解决内存泄露问题。基于此,开发一种基于JAVA的内存溢出方法尤为必要。

技术实现思路

[0003]针对现有技术上存在的不足,本专利技术目的是在于提供一种基于JAVA的内存溢出方法,合理安排数据占有空间的利用,使不需要的资源空间得到释放,减少内存泄漏的隐患,减少从而导致的内存溢出情况,使服务器正常运行,易于推广使用。
[0004]为了实现上述目的,本专利技术是通过如下的技术方案来实现:一种基于JAVA的内存溢出方法,其步骤为:
[0005](1)首先将栈定义为root;
[0006](2)遍历栈中所有的对象的引用;
[0007](3)再遍历一遍栈中的对象;
[0008](4)通过栈中的对象的引用去查找堆中没有被指向的对象,使用内置的callable函数callable(func)用于检查对象是否可调用,未被引用的对象为不可到达对象,将不可到达的对象进行垃圾回收,从而减少内存泄漏。
[0009]作为优选,所述的步骤(2)使用for循环的普通遍历方式或者使用栈的递归遍历方式,遍历栈中的对象。
[0010]作为优选,所述的步骤(3)使用遍历栈对象的方法遍历堆中的对象。
[0011]本专利技术的有益效果:本方法从JVM虚拟机底层层面进行的代码优化,合理安排数据占有空间的利用,使不需要的资源空间得到释放,从而减少内存泄漏的隐患,减少从而导致的内存溢出情况,使服务器正常运行,应用前景广阔。
附图说明
[0012]下面结合附图和具体实施方式来详细说明本专利技术;
[0013]图1为本专利技术的主流程图;
[0014]图2为本专利技术的技术流程图。
具体实施方式
[0015]为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。
[0016]参照图1

2,本具体实施方式采用以下技术方案:一种基于JAVA的内存溢出方法,其步骤为:
[0017](1)首先将栈定义为root;
[0018](2)遍历栈中所有的对象的引用:可通过使用for循环的普通遍历方式或者使用栈的递归遍历方式,遍历栈中的对象;
[0019](3)再遍历一遍栈中的对象:使用遍历栈对象的方法遍历堆中的对象;
[0020](4)因栈中的对象的引用执行完毕就会被删除,通过栈中的对象的引用去查找堆中没有被指向的对象,使用内置的callable函数callable(func)用于检查对象是否可调用,返回False一定不可调用,未被引用的对象为不可到达对象,将不可到达的对象进行垃圾回收,从而减少内存泄漏。
[0021]本具体实施方式在代码层面,将一个个引用的对象用过强转弱的引用方式,使用WeakReference重新定义对象,没有这样的对象称之为软引用对象,当内存不足时自动将没有指示的对象、没有任何强引用对象指向它,进行垃圾回收。
[0022]本具体实施方式依据java在JVM所创造的虚拟数据存储区运行,从JVM虚拟机底层层面进行代码优化,根据内存特点,从代码层面以及JVM底层维度这一根本原因彻底解决因未到达对象造成的内存泄漏问题,能够合理安排数据占有空间的利用,使不需要的资源空间得到释放,解决大多数因内存泄漏导致的内存溢出问题,减少内存泄漏的隐患,减少从而导致的内存溢出情况,使服务器正常运行,还能降低企业对服务器的成本支出,减少对服务器的维护成本,高效使用服务器,提高服务器生产效率,减少宕机的出现,具有广阔的市场应用前景。
[0023]以上显示和描述了本专利技术的基本原理和主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内。本专利技术要求保护范围由所附的权利要求书及其等效物界定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JAVA的内存溢出方法,其特征在于,其步骤为:(1)首先将栈定义为root;(2)遍历栈中所有的对象的引用;(3)再遍历一遍栈中的对象;(4)通过栈中的对象的引用去查找堆中没有被指向的对象,使用内置的callable函数callable(func)用于检查对象是否可调用,未被引用的对象为不可到达对象,将不可到达...

【专利技术属性】
技术研发人员:尤松波周正虎
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1