Java 内存管理环境中的内存管理

Java 内存管理环境中的内存管理,java,memory,memory-management,garbage-collection,Java,Memory,Memory Management,Garbage Collection,如何在内存管理环境中进行内存管理 只是垃圾收集还是其他什么 在Java中,GC由VM定期完成,而不显式调用垃圾收集。我知道我们可以使用System.gc()请求垃圾收集,但不能保证垃圾收集会发生 那么,在内存管理环境中还有其他内存管理方法吗?垃圾收集是在托管环境中管理内存的方式(事实上,这就是为什么它被称为托管环境,因为内存是为程序员管理的) 一般来说,在这样的环境中,您不需要管理内存。没有很多选项。您还可以检查不同类型的GC是如何工作的,或者尝试调整GC参数。您的问题的简短答案是否定的。在Ja

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

只是垃圾收集还是其他什么

在Java中,GC由VM定期完成,而不显式调用垃圾收集。我知道我们可以使用System.gc()请求垃圾收集,但不能保证垃圾收集会发生


那么,在内存管理环境中还有其他内存管理方法吗?

垃圾收集是在托管环境中管理内存的方式(事实上,这就是为什么它被称为托管环境,因为内存是为程序员管理的)


一般来说,在这样的环境中,您不需要管理内存。

没有很多选项。您还可以检查不同类型的GC是如何工作的,或者尝试调整GC参数。您的问题的简短答案是否定的。在Java环境中,您实际上无法直接控制如何释放或管理堆空间。这就是说,现代JVM具有非常高效的GC算法,并且通常在管理除最极端情况外的所有情况下的内存使用方面做得非常好


即使您无法直接控制收集哪些对象以及该过程何时发生,您也可以使用中的引用类来影响在给定时间哪些对象符合条件并且更有可能被垃圾收集。

即使您无法真正从技术层面管理内存,开发人员仍然能够在一定程度上管理内存。我的意思是,与其尝试对抗或改进JVM,不如让它为您完成工作。但话虽如此,一个写得不好的程序(即糟糕的内存管理,又称内存使用)可能会导致糟糕的程序体验


但是,如果您从设计的角度管理内存(即不浪费内存,使用适当的算法和数据结构,根据需要取消引用/释放内存),这些东西可以让开发人员进行一定程度的控制。

简单的回答是:您不必担心垃圾收集;您唯一需要担心的是不要在java中造成内存泄漏。
看到这个:

“内存管理环境”?我认为,Q足够清晰,可以重新打开。那么,这是否意味着在这样的环境中程序员根本不需要担心内存问题?@Vikram-嗯,您确实需要担心内存消耗,但不是为对象分配和释放内存。@Oded:有些人就是不相信那个讨厌的GC。如果你想做某事,就自己做。:)@SergioTulentsev——好吧,我和一些图书馆合作过,这些图书馆本应该让生活更轻松,我知道这种感觉;)