Tag: 垃圾收集

String.intern()的垃圾收集行为

如果我使用String.intern()来提高性能,因为我可以使用“==”来比较实习字符串,我会遇到垃圾收集问题吗? 实习字符串的垃圾收集机制与普通字符串有何不同?

GC是否将内存释放回操作系统?

当垃圾收集器运行并释放内存时,此内存会返回到操作系统,或者它是否作为进程的一部分保留。 我的印象是,内存从未实际发布回操作系统,而是作为内存区/池的一部分保留,以便由同一进程重用。 结果,进程的实际内存永远不会减少。 一篇提醒我的文章是这个,Java的Runtime是用C / C ++编写的,所以我想同样的事情也适用? 更新 我的问题是关于Java。 我提到C / C ++,因为我假设Java的分配/释放是由JRE使用某种forms的malloc / delete完成的

当java仍然在范围内时,java能否最终确定它?

我一直在研究我的代码中的一个错误,似乎是由一些“丑陋的”终结器代码引起的。 代码看起来大致如此 public class A { public B b = new B(); @Override public void finalize() { b.close(); } } public class B { public void close() { /* do clean up our resources. */ } public void doSomething() { /* do something that requires us not to be closed */ } } void main() […]

字符串文字的垃圾收集

我正在阅读垃圾收集,当我搜索字符串文字垃圾收集时,我的搜索结果令人困惑。 我需要澄清以下几点: 如果在编译时将字符串定义为文字[例如: String str = “java” ]那么它是否会被垃圾收集? 如果使用intern方法[例如: String str = new String(“java”).intern() ]那么它会被垃圾收集吗? 它也将与第1点中的字符串文字区别对待。 有些地方提到只有在卸载String类时才会对文字进行垃圾收集? 它是否有意义,因为我不认为String类将被卸载。