2012-08-01 134 views
-2

如何在内存管理环境中进行内存管理?内存管理环境中的内存管理

它只是垃圾收集或其他东西?

在Java中,GC是周期性的VM没有显式调用垃圾收集完成。我知道我们可以使用System.gc()来请求垃圾回收,但不保证垃圾回收会发生。

那么,有没有在内存管理的环境中其他任何方式进行内存管理?

+0

“存储管理环境”? – kosa 2012-08-01 19:38:39

+0

我认为,问答已经足够清楚,可以重新开放。 – Vikram 2012-08-06 15:34:27

回答

1

垃圾回收内存如何在托管环境管理(其实,这就是为什么它被称为管理环境 - 因为内存是为程序员管理)。

通常,您不需要在这样的环境中管理内存。

+0

那么,这是否意味着在这样的环境中程序员根本不需要担心内存? – Vikram 2012-08-01 19:40:46

+0

@Vikram - 嗯,你确实需要担心内存_consumption_,而不是为你的对象分配和释放内存。 – Oded 2012-08-01 19:41:38

+0

@Oded:有些人根本不相信讨厌的GC。如果你想完成某件事,那就自己动手吧。 :) – 2012-08-01 19:44:56

1

简短的回答你的问题是没有。在Java环境中,您确实无法直接控制释放或管理堆空间的方式。这就是说,现代JVM具有非常高效的GC算法,并且除了最极端的情况外,通常都会为所有用户管理内存使用情况做出完美可接受的工作。

尽管您无法直接控制收集哪些对象以及何时发生此过程,但您可以使用java.lang.ref中的参考类来影响哪些对象符合条件且更有可能在给定时间被垃圾收集。

0

即使你不能真正在技术层面上管理你的记忆,开发商仍能够管理存储到一定程度。我的意思是,不要试图去争取或改进JVM,而要让它为你做好工作。但话虽如此,编写不好的程序(即糟糕的内存管理,也就是内存使用)可能导致糟糕的程序体验。但是,如果你从设计的角度管理你的内存(即不浪费内存,利用适当的算法和数据结构,如你认为合适的不参考/释放内存),这些东西可以让你的开发人员得到某种程度的控制。