通过从无用的资源中回收空间,Java 中的垃圾收集简化了内存管理的耗时操作。当内存变得稀缺时,JVM 的垃圾收集立即开始。不过,开发者可以利用gc()函数主动联系JVM执行工作。
- 该方法是java.lang.Runtime类(如果您连接到 Java 虚拟机)。
- 开发人员可以主动请求 JVM 通过使用以下命令删除任何不需要的资源来降低内存使用量:gc()函数。
- 运行时.getRuntime().gc()或者系统.gc()可以用来获得gc()函数从运行类。
概念解释
- 垃圾收集:垃圾收集是检测和释放程序不再使用的内存的过程。 JVM 在 Java 中自动执行此操作,但您可以使用 gc() 函数直接请求它。
- 运行时类: 运行类,它包含在java.lang包提供对应用程序运行时环境的访问。它支持与底层系统的通信,包括与垃圾Collector的接口。
gc() 函数很简单,没有变化或重载。可以使用以下方式访问它运行时.getRuntime().gc()或系统.gc()。
的例子Java 运行时 gc() 方法
以下是一些示例代码,演示了如何使用gc()方法:
示例 1:
在这个例子中,,我们会讨论运行时.getRuntime().gc()请求垃圾收集。
Java
//Java Program to
//create garbage collector
public class GFG {
//Main method
public static void main(String[] args) {
// print when the program starts
System.out.println("Program starting...");
// run the garbage collector
System.out.println("Running Garbage Collector...");
// garbage collector instance
Runtime.getRuntime().gc();
System.out.println("Completed.");
}
}
输出
Program starting... Running Garbage Collector... Completed.
上述程序的解释:
- 在此示例中,我们使用以下命令请求垃圾收集系统.gc()打印该消息表明已请求垃圾Collector。
示例 2:内存不足之前的垃圾收集
在这个例子中,我们将讨论系统.gc()请求垃圾收集。
Java
// Java Program to create garbage collector
// using System.gc()
// Driver class
public class GFG {
// Main method
public static void main(String[] args){
for (int i = 0; i < 100000; i++) {
// Create objects in a loop
new GFG();
}
// Request garbage collection
System.gc();
// Message to indicate that the garbage collector
// was requested
System.out.println("Garbage collection requested.");
}
}
输出
Garbage collection requested.
上述程序说明:
- 在这个例子中,我们创建了大量的GC演示循环中的对象。在内存耗尽之前,我们显式请求垃圾回收来释放内存。
结论
Java 中的 gc() 方法允许有针对性地释放未使用的对象占用的内存。虽然 Java 的内置垃圾收集通常很有效,但可能有必要解决运行时问题。
- gc() 方法作为解决方案。
- 使用垃圾收集时必须有明确的理由。
- gc() 方法是优化内存使用和提高 Java 应用程序性能的宝贵资源。
如果使用得当,它可以成为您的编程工具包中的宝贵资产。
相关用法
- Java Runtime getRuntime()用法及代码示例
- Java Runtime maxMemory()用法及代码示例
- Java Runtime freeMemory()用法及代码示例
- Java Runtime halt()用法及代码示例
- Java Runtime load()用法及代码示例
- Java Runtime runFinalization()用法及代码示例
- Java Runtime availableProcessors()用法及代码示例
- Java Runtime exit()用法及代码示例
- Java Runnable用法及代码示例
- Java RuleBasedCollator clone()用法及代码示例
- Java RuleBasedCollator compare()用法及代码示例
- Java RuleBasedCollator equals()用法及代码示例
- Java RuleBasedCollator getCollationElementIterator(CharacterIterator)用法及代码示例
- Java RuleBasedCollator getCollationElementIterator(String)用法及代码示例
- Java RuleBasedCollator getCollationKey()用法及代码示例
- Java RuleBasedCollator getRules()用法及代码示例
- Java RuleBasedCollator hashCode()用法及代码示例
- Java Random doubles()用法及代码示例
- Java Random nextInt()用法及代码示例
- Java Reentrant getQueueLength()用法及代码示例
- Java ReentrantLock getHoldCount()用法及代码示例
- Java ReentrantLock getOwner()用法及代码示例
- Java ReentrantLock hasQueuedThread()用法及代码示例
- Java ReentrantLock hasQueuedThreads()用法及代码示例
- Java ReentrantLock isFair()用法及代码示例
注:本文由纯净天空筛选整理自ayushi_awasthi_大神的英文原创作品 Java Runtime gc() Method with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。