如何在内存管理环境中进行内存管理?
它只是垃圾收集还是别的什么?
在Java中,GC由VM定期完成,无需显式调用垃圾回收。我知道我们可以使用System.gc()来请求垃圾收集,但不保证会进行垃圾收集。
那么,内存管理环境中的内存管理还有其他方法吗?
答案 0 :(得分:2)
没有太多选择。您还可以检查不同类型的GC的工作方式http://sanjaal.com/java/574/java-general/all-about-java-garbage-collection-types-algorithms-advantages-and-disadvantages/或尝试调整GC参数
答案 1 :(得分:1)
垃圾收集是在托管环境中管理内存的方式(实际上,这就是为什么它被称为托管环境 - 因为内存是为程序员管理的。)
通常,您无需在此类环境中管理内存。
答案 2 :(得分:1)
你问题的简短回答是否定的。在Java环境中,您实际上无法直接控制释放或管理堆空间的方式。话虽如此,现代JVM具有极其高效的GC算法,并且除了最极端的情况外,通常可以完全管理内存使用情况。
即使您没有直接控制收集哪些对象以及何时发生该过程,您也可以使用java.lang.ref中的引用类来影响哪些对象符合条件,并且更有可能在给定的时间。
答案 3 :(得分:0)
即使您无法在技术层面真正管理内存,开发人员仍然能够在一定程度上管理内存。我的意思是,不要试图打击或改进JVM,而是让它为你完成工作。但话说回来,编写得不好的程序(即糟糕的内存管理,即内存使用)可能导致糟糕的程序体验。
但是,如果您从设计角度管理内存(即不浪费内存,使用适当的算法和数据结构,根据您的需要不引用/释放内存),这些东西可以让开发人员进行一定程度的控制。
答案 4 :(得分:0)
简短的回答:你不必担心垃圾收集;你唯一需要担心的是不要在java中造成内存泄漏。 看到这个:Creating a memory leak with Java