搜尋
首頁JavaJava入門java中的gc是什麼

java中的gc是什麼

GC是垃圾收集的意思(Gabage Collection),記憶體處理是程式設計人員容易出現問題的地方,忘記或錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰。

Java提供的GC功能可以自動監控物件是否超過作用域以達到自動回收記憶體的目的,Java語言並沒有提供釋放已指派記憶體的顯示操作方法。

GC是垃圾收集器。 Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管理。若要要求垃圾收集,可以呼叫下面的方法之一:  

·System.gc()

· Runtime.getRuntime().gc()

Java是由C 發展出來的。

它擯棄了C 中一些繁瑣容易出錯的東西。其中有一條就是這個GC。

寫入C/C 程序,程式設計師定義了一個變量,就是在記憶體中開闢了一段對應的空間來存值。記憶體再大也是有限的,所以當程式不再需要使用某個變數的時候,就需要釋放這個記憶體空間資源,好讓別的變數來用它。在C/C 中,釋放無用變數記憶體空間的事情要由程式設計師自己來解決。是說當程式設計師認為變數沒用了,就該寫一條程式碼,釋放它佔用的記憶體。這樣才能最大程度地避免記憶體外洩和資源浪費。

但是這樣顯然是非常繁瑣的。程式比較大,變數多的時候往往程式設計師就忘記釋放記憶體或是在不該釋放的時候釋放記憶體了。而且釋放記憶體這種事情,從開發角度說,不應該是程式設計師所應當關注的。程式設計師要做的應該是實現所需的程式功能,而不是耗費大量精力在記憶體的分配釋放上。

Java有了GC,就不需要程式設計師去手動釋放記憶體空間。當Java虛擬機器發覺記憶體資源緊張的時候,就會自動地去清理無用變數所佔用的記憶體空間。當然,如果需要,程式設計師可以在Java程式中明確地使用System.gc()來強制進行一次立即的記憶體清理。

因為明確聲明是做堆記憶體全掃描,也就是 Full GC,是需要停止所有的活動的(Stop The World Collection),你的應用能承受這個嗎?而其顯示呼叫System.gc()只是給虛擬機器一個建議,不一定會執行,因為System.gc()在一個優先權很低的執行緒中執行。 

php中文網,大量的免費Java入門教學,歡迎線上學習!

以上是java中的gc是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。