(注:本文引用知识纯粹为技术交流,未经允许不可私自转载)
Java中其实也有内存泄露,就是因为对象无用却可达的原因.
这个细分细分下来有三个
1. 不可用不可达------>这种情况GC会帮我们回收掉,而C++不会
2. 不可用可达 ------>这种情况会存在内存泄露
3. 可用可达 ------>正常使用 1.不可用不可达就是我们的变量作用域结束了,不可用不可达
2. 不可用可达,就是我们自己没有将其对象,
举个例子:
在这个例子中,我们循环申请Object对象,并将所申请的对象放入一个Vector中,如果我们仅仅释放引用本身,那么Vector仍然引用该对象,所以这个对象对GC来说是不可回收的。因此,如果对象加入到Vector后,还必须从Vector中删除,最简单的方法就是将Vector对象设置为null
Vector v=new Vector(10);
for (int i=1;i<100; i++)
{
Object o=new Object();
v.add(o);
o=null;
} //此时,所有的Object对象都没有被释放,因为变量v引用这些对象。
这时候这些Object就是不可用可达的对象,GC不会帮我们清理的, 这就存在了内存泄露了
3. 可用可达就不做介绍了

最新文章

  1. CustomUI Direct3D9_Sample
  2. Python多线程开发简介
  3. PostGreSQL存储过程
  4. Gatling-&gt;次时代性能测试利器
  5. thanksgiving day (eat)
  6. Yii防注入攻击笔记
  7. Jquery not选择器实现元素显示隐藏
  8. angularjs directive and component 指令与组件 ( 1.5.0 以后 )
  9. JS、CSS兼容性问题的几点总结
  10. JAVA布局管理器
  11. OpenSUSE 13.2使用VPN(PPTP)
  12. 【转】Linux上vi(vim)编辑器使用教程
  13. Vue-Router嵌套路由
  14. android --------- 嵌套unity出现 your hardware does not support this application,sorry!
  15. 在Ubuntu登陆界面输入密码之后,黑屏一闪后,又跳转到登录界面
  16. PHP中字符串与html相互转化函数
  17. WEB应用程序:AJAX全套
  18. php-url地址加密
  19. 流程控制与数组——Java疯狂讲义
  20. intelj idea编译项目报错,Error:ajc: The method getDestHost() is undefined

热门文章

  1. ES6中对数值的扩展
  2. c++指定输出小数的精度
  3. Scrapy中的crawlspider
  4. php sprintf() 函数把格式化的字符串写入一个变量中。
  5. PHP如何实现判断提交的是什么方式
  6. 使用cat命令清空文件
  7. 2019-2020-1 20199329《Linux内核原理与分析》第三周作业
  8. MySQL join的7种理论及SQL写法
  9. js 运动函数篇 (一) (匀速运动、缓冲运动、多物体运动、多物体不同值运动、多物体多值运动)层层深入
  10. 用libevent写的海康摄像头rtsp客户端