通過從無用的資源中回收空間,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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。