*当我试图在JFrame中创建一个按钮时,我遇到了一个非常奇怪的java GC问题,当我单击该按钮时,它显示了一个需要处理和显示一些图像的JDialog,需要近200M内存。但问题是,当我关闭对话框并重新打开它时,有时会导致java.lang.OutofMemoryError。(不是每次) 为了解决这个问题,我简化了这个问题,做了一些实验,这使我更加困惑。 我在“实验”中使用的代码如下所示。当我单
如果我有一个(或多个)尚未启动,并且在该方法上有几个,方法。 垃圾收集器会移除所有这些吗? 如果在该链的末尾有一个< code > join()/< code > get() 也许我们需要更多关于连接上下文的信息()。 这种连接是线程中的最后一个命令,并且没有副作用。那么在这种情况下,线程仍然是活动的吗?- Java线程垃圾收集与否 无论如何,这是一个好主意,如果我确信(也许在尝试捕获中),那么将
我有一段代码,其中创建了一个PiggyBank对象。根据选择,有三个if语句。由于关键字new在堆中分配对象,我应该如何正确管理内存垃圾,因此当创建不同类型的构造函数时,旧的存钱罐将消失,如下代码所示:
我正试图设置一个小型Spark集群进行测试。该集群由3名工人和一名师傅组成。我在每个节点上设置了Java、scala和Spark。配置文件如下:spark-defaults.conf: Spark-env.sh
问题内容: 如何将详细的垃圾回收输出重定向到文件?Sun的网站显示了Unix的示例,但不适用于Windows。 问题答案: 从输出: 记录在这里: -Xloggc: 文件名 设置应将详细的GC事件信息重定向到该文件以进行日志记录的文件。从每个记录的事件之前的第一个GC事件开始,写入该文件的信息与经过时间后的输出类似。如果两者都使用同一命令给出,则该选项将覆盖。 例: 所以输出看起来像这样:
问题内容: 我一直在尝试和今天 按此顺序运行时 类似于以上。特别是,我没有感兴趣的“死”对象。 看到这一点,我开始寻找可以告诉我期望的文档。我最接近的讨论是该讨论,briand和alanb的评论暗示实际上,我可以期望使用live选项时会出现该GC。但答案已有5年之久了,在论坛上发帖似乎对规范不拘一格。 在哪里可以找到当前记录的行为? 问题答案: 为了确定活动性,Java 必须 运行完整的GC,因此
问题内容: 在下面的示例中,new Thread()没有任何引用。可能是被废弃的垃圾收集了吗?同样,在不扩展Thread类或实现可运行的情况下,我们如何创建线程? 问题答案: 如果尚未启动的新线程无法正常访问,则将对其进行垃圾回收。 已经启动的新线程成为垃圾回收“根”。它不会(直到)完成才被垃圾收集。 在下面的示例中,new Thread()没有任何引用。可能是被废弃的垃圾收集了吗? 不。它已经启
问题内容: 我读的这个文章,我真的不能明白 的终结对象(其覆盖的对象是如何法)至少需要2 GC周期可以被回收之前。 在可以回收可终结对象之前,至少需要两个垃圾回收周期(最好)。 有人还能详细解释 一个可终结对象如何花费多个GC周期进行回收吗? 我的逻辑观点是,当我们覆盖finalize方法时,运行时将不得不向垃圾收集器注册此对象(以便GC可以调用此对象,这使我认为GC将引用所有finalize对象
问题内容: 我想在Linux / AMD64 / Debian和GCC 4.6上开发一个多线程C 应用程序(最终大多数C 代码将由应用程序本身生成,可以将其视为高级领域特定语言)。可能是最新的C ++ 11标准)。 我真的想对我的所有堆分配使用Boehm的保守垃圾收集器,因为我想分配而不用担心。我假设Boehm的GC运行良好。 使用(而不是C)C 的主要动机是所有的算法和集合 … 由C 标准库提供
问题内容: 因此,我正在远程容器上查看带有jmap的堆,并且我想对其进行强制垃圾收集。如何在不弹出jvisualvm或jconsole和朋友的情况下执行此操作? 我知道您不应该进行强制垃圾回收的实践-您应该弄清楚为什么堆很大/越来越大。 我还意识到System.GC()实际上并没有强制垃圾回收-它只是告诉GC您希望它发生。 话虽如此,有没有一种方法可以轻松地做到这一点?我缺少一些命令行应用程序?
问题内容: 当伊甸园空间年轻时已满,将触发次要GC。在次要GC过程中,伊甸园和一个源Survivor空间中的非自由对象将被复制到另一个目标Survivor空间。 我的问题是,如果目标“幸存者”空间已满,次要GC如何处理? 问题答案: 如果不可能执行/完成次要收集,则将执行主要/完整收集。通常使用标记扫描紧凑算法而不是复制算法来完成此操作……这是完整收集昂贵的原因之一。 但是最终(如果您继续填充堆)
问题内容: 我是Java新手,对Java中的垃圾收集器感到困惑。它实际上是做什么的,什么时候生效。请描述Java中垃圾收集器的一些属性。 问题答案: 该垃圾收集器是运行在一个程序的Java虚拟机,其摆脱其未使用的Java应用程序了对象。它是自动内存管理的一种形式。 当典型的Java应用程序运行时,它正在创建新的对象,例如和,但是在一段时间之后,这些对象将不再使用。例如,看下面的代码: 在上面的代码
问题内容: 我正在阅读有关垃圾收集的信息,当我搜索字符串文字垃圾收集时,搜索结果令人困惑。 我需要澄清以下几点: 如果在编译时将字符串定义为文字字符串,那么是否会对其进行垃圾回收? 如果使用实习方法,那么它会被垃圾回收吗?在第1点中,它也将与文字区别对待。 有人提到只有在卸载类时才会对文字进行垃圾回收吗?是否有道理,因为我认为永远不会卸课。 问题答案: 如果在编译时将字符串定义为文字字符串,那么是
问题内容: 这个问题来自Kathy Sierra SCJP 1.6 。有多少对象可以进行垃圾收集? 根据Kathy Sierra的回答,它是。这意味着两个对象可以进行垃圾回收。我已经给出了答案的解释。 但是,为什么不符合垃圾收集(GC)的条件? 何时到达,有多少对象可以使用GC? 答:0 B:1 C:2 D:编译失败 E:不可能知道 F:在运行时引发异常 回答: C是正确的。仅一个CardBoar
问题内容: 我正在寻找有关如何在低延迟至关重要的环境中最大程度地调整年轻一代(相对于老一代)的争论。 我自己的测试倾向于表明,当年轻一代相当大时(例如-XX:NewRatio <3),延迟是最低的,但是我不能直觉地认为年轻一代越大,进行垃圾处理的时间就越多收集。 该应用程序在Linux 64位jdk 6上运行。 内存使用量大约是启动时加载的50万兆个长寿命对象(=数据缓存),并且从那里仅创建(很多