开发者社区> 问答> 正文

Java会存在内存泄漏吗?

Java会存在内存泄漏吗?请简单描述

展开
收起
请回答1024 2020-03-11 11:41:47 3701 0
6 条回答
写回答
取消 提交回答
  • 个人对建模比较关注

    存在,引用一个大的list,无限加信息,超出堆大小就会泄露,导致oom

    2020-03-25 17:37:20
    赞同 展开评论 打赏
  • java内存泄露的意思是,你创建了一个大对象,而且java代码中这个对象已经没有用了,但是还是有引用持有这个对象,这个时候就发生了内存泄露。

    这种问题一般heap dump出来看看哪些对象持有这个大对象,然后具体分析即可

    2020-03-23 21:42:02
    赞同 展开评论 打赏
  • 内存泄漏在java中指,申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。 可以使用heapdump分析下

    2020-03-22 23:19:51
    赞同 展开评论 打赏
  • 会的, java 有oom异常, 非生产环境可以尝试一直申请内存, 很容易就能复现

    2020-03-20 20:20:20
    赞同 展开评论 打赏
  • java的内存泄漏和C系语言的内存泄露不一样。 c类的内存泄漏指的是有一块内存使用了没有被释放,而且句柄或指针也丢失了(以后也没法释放) java的内存泄漏指的是用完了内存后,这个内存被一些长效对象持有不释放,导致内存占用越来越大的问题,从这个角度来说,java存在内存泄漏的

    2020-03-13 14:19:57
    赞同 展开评论 打赏
  • 内存泄漏是指不再被使用的对象或者变量一直被占据在内存中。理论上来说,Java是有GC垃圾回收机制的,也就是说,不再被使用的对象,会被GC自动回收掉,自动从内存中清除。

    但是,即使这样,Java也还是存在着内存泄漏的情况,java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景。

    原文链接:https://thinkwon.blog.csdn.net/article/details/104390752

    2020-03-11 12:54:31
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载