java是否存在内存泄露(面试题之一)
来源:互联网 发布:网络出租屋牌照购买 编辑:程序博客网 时间:2024/06/09 18:14
理论上有gc是不会有内存泄露的,但是还是会有个别情况的。
来源:百度知道。
会。java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。1.集合类,集合类仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。这一点其实也不明确,这个集合类如果仅仅是局部变量,根本不会造成内存泄露,在方法栈退出后就没有引用了会被jvm正常回收。而如果这个集合类是全局性的变量(比如类中的静态属性,全局性的map等即有静态引用或final一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减,因此提供这样的删除机制或者定期清除策略非常必要。2.单例模式。不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在JVM的整个生命周期中存在(以静态变量的方式),如果单例对象持有外部对象的引用,那么这个外部对象将不能被jvm正常回收,导致内存泄露,考虑下面的例子:class A{public A(){B.getInstance().setA(this);}....}//B类采用单例模式class B{private A a;private static B instance=new B();public B(){}public static B getInstance(){return instance;}
0 0
- java是否存在内存泄露(面试题之一)
- (面试题)Java中的内存泄露
- 关于java是否存在内存泄露的问题
- java中是否存在内存泄露--比较好的回答
- 几个关于Java内存泄露方面的面试题
- iOS 测试项目是否存在内存泄露
- Java面试题之一
- java面试题之一
- java面试题之一
- Java面试题之一
- Java面试题之一
- 面试题之单链表是否存在环
- java 中会存在内存泄露吗?
- java是否存在内存泄漏
- java算法面试题之一
- Java面试题--内存
- 自制的测试工具----应用程序是否存在内存泄露
- 使用JDK工具检查运行系统是否存在内存泄露
- 【页面】手机页面跳转的实现方法(一)——setContentView
- Ubuntu12.04 64bit安装后要做的配置
- 黑马程序员——Foundation学习总结12-16
- 深圳市软件质量提升工程系列活动——安全测试百人大课堂
- Hibernate进阶之双向一对多关系映射
- java是否存在内存泄露(面试题之一)
- margin和padding的学习
- VLFeat图像库在VS2012下的配置
- RSA算法
- 数组-02. 打印杨辉三角(20)
- Hibernate中的“1+N”问题
- 程序员如何应用“刻意练习”
- 页面倒计时跳转
- 怎样练习一万小时