内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。
容易发送内存泄漏的地方很多,虽然java有GC 但是程序员不主意,就很容易内存泄漏 导致程序无法运行。
在管理对象上我们尽量要释放无用的资源(一个对象的引用赋值为null 这个对象就会被GC收集)。
在实际的开发内存泄漏:
1.创建对象过多,没有释放资源。
2.hash算法的集合中,如果放进去的对象在放进去之后改变了hashCode而我们要去移除该对象。是移除不了,久而久之就内存泄露。
3.数据库连接不关闭,连接过多占用资源。
4.线程不安全的集合在遍历时候移除元素,导致的死循环内存无法释放。
上面随便写了点,很多都是张老师java视频中介绍了。
在编写程序的时候我们应该分析内存,哪些应该释放,管理内存才能让程序内存不泄漏。
内存分析也有些工具,可以去下载试用。
|