关于内存泄露,我之前一直都没有什么特别的感觉,只是平时看书上说,要关闭文件的句柄,要释放占用的内存资源,于是我就这么做,并没有什么特别的理解,直到这次Java Web的最后项目……
因为这次的项目要做和数据库关联的,其中涉及好几个表,为了代码有一个良好的结构,于是使用了MVC设计模式,对于每一个数据表,都单独抽象出来的一个类,来封装增删查改操作。由于每个表的操作都一样,项目也比较简单,每个类的代码,有很多重复的地方,于是为了偷懒,好多查询的函数,我都没有释放数据库连接的句柄,没想到就是这一偷懒,导致了下面的悲剧。
当时的情况是这样的,整个项目基本已经写完了,开始进行测试,发现网页一开多,项目就崩溃,然后到console上看log,发现由于数据库连接数过多,导致项目崩溃了,这时候,突然意识到,自己在写代码的时候,有好多的连接没关闭,然后,为了修改这个错误,每个函数都看了一遍,然后把该释放的资源都释放掉,再次运行,多开网页,没有问题,全部pass。
本想偷个懒,没想到最后还是要把之前遗漏的补上,这种返工式的修改,反而比直接一步完成,更加费事费力。以后还是少偷懒,多干活……
原文:http://www.cnblogs.com/ningge/p/5247279.html