首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java成员变量不含GC意味着什么?

java成员变量不含GC意味着什么?
EN

Stack Overflow用户
提问于 2019-01-20 19:20:23
回答 1查看 260关注 0票数 3

我在org.apache.coyote.Request.java的apache tomcat源代码中偶然发现了如下注释:

代码语言:javascript
复制
    This is a low-level, efficient representation of a server request. Most
 * fields are GC-free, expensive operations are delayed until the  user code
 * needs the information.

无GC是什么意思?如何使JVM不在变量上运行垃圾收集,这不是很危险吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-20 19:39:14

链接到Github上的org.apache.coyote.Request.java

他们并不是说他们让JVM不运行垃圾收集。他们的意思是这些字段不会生成JVM需要收集的垃圾。一个更好的术语可能是无垃圾,而不是无GC。或可回收的内存。事实上,如果你看看org.apache.tomcat.util.buf.MessageBytes.java,他们使用术语可回收。

你可以在Java Development without GC上阅读更多关于这方面的讨论。警告,他们正试图向您出售一个商业产品,以检查您的内存使用情况,并寻找垃圾泄漏。

基本概念是,如果您分配内存,则将其存储在分配池中。而不是允许它超出作用域并被垃圾收集,而是将它保持在作用域中,并在下一次分配时重用它。

Request.java中,您可能想要签出recycle方法。这似乎就是清除旧内存并为重用对象做准备的原因。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54275919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档