我们接着内存泄露说内存溢出.
内存溢出在生活中很常见,比如在我们运行大型游戏,或者在电脑上运行了很多的程序,会造成系统报出内存溢出,请关闭程序的警示框.
那么,内存溢出其实就是内存泄露的进阶问题,当内存泄露到一定程度,必然会造成内存溢出.在平时运行过程中,如果不是你程序开的太多了,就是你运行的这个软件本身就有问题(当然,这样问题很少出现,因为软件并不是随随便便就发布到市场的).
在编程过程中,如果出了内存溢出的问题,就是我们的程序写的有问题,首先,说说比较官方的解决办法,当然,错误原因也会在七中穿插.
第一步,修改jvm或者我们服务器的运行参数,就是把运行内存调大.因为机器默认的大小事相当小的,所以我们可以尝试修改,增大他.
第二步,查看错误日志,看看在处错误前后有什么程序运行了,这样基本会确定问题出现的位置了.
第三步,找有经验的程序员调试程序.
这里可以总结出很多的错误:
首先,查看是否有死循环或者是递归的程序发生(这也是为啥我们一般不会使用递归函数,因为递归函数是很好内存大的)
再则,查看是否有大的循环重复.
再则,查看,向集合这样的数据有没有在使用后置为null,(是否发生了内存泄露的第二种)
最后,查看是否是查询的数据库数据太多了.(因为我们在编写代码测试的时候数据量不会太多,那么一旦发布到环境中,就会有大量的数据加入,如果查询的时候数据量太大,则会造成内存溢出)
第四步,用检查软件检测.有名的软件有,JinSight,Jconsole等等