1. java中 gc的作用是什麼
System.gc()用來強制立即回收垃圾,即釋放內存。
java對內存的釋放採取的垃圾自動回收機制,在編程的時候不用考慮變數不用時釋放內存,java虛擬機可以自動判斷出並收集到垃圾,但一般不會立即釋放它們的內存空間,當然也可以在程序中使用System.gc()來強制垃圾回收,但是要注意的是,系統並不保證會立即進行釋放內存
2. java中GC是什麼為什麼要有GC
gc是指垃圾回收機制,當一個對象不能再被後續程序所引用到時,這個對象所佔用的內存空間就沒有存在的意義了,java虛擬機會不定時的去檢測內存中這樣的對象,然後回收這塊內存空間。
3. java中到底該不該手動調用gc
不用手動調,即使你是搞內存型程序,你在調用gc時jvm也會有它的調度規則,不是你一調用就開始回收垃圾,所以在編程時注意釋放沒用的資源,尤其是在線程中,因為線程沒結束有些資源是無法釋放的。
4. 為什麼java調用了System.gc(),並不會馬上進行垃圾回收,甚至不一定會執行垃圾回收~
調用了System.gc()只是告訴虛擬機要回收,但究竟什麼時候回收又虛擬機說了算,java垃圾回收機制就是這樣,一般等到內存快不夠用了才回收。
5. Java命令行執行gc的命令是什麼
System.gc()
不過java虛擬機的gc過程並不是在調用System.gc()之後立即執行的,而是通知虛擬機這部分內存可以回收了,gc的時機是由虛擬機決定,不同的虛擬機gc線程的優先順序不同,一般都比較低
6. Java的GC機制到底怎麼回事
這個有點復雜,現在JVM應該都是分代回收,具體你可以去看一下JVM原理;
簡單點說就是: 你 new 出來的對象,當不用的時候是不會馬上回收的;JVM分時間,分階段逐步回收;當然,如果你直接調用System.gc()的話;這時候會引發 full gc();也就是JVM裡面不被引用的對象都會被回收一次,資源消耗的代價是比較高的;你可以用jstat命令查看到具體的回收過程,回收次數等信息
7. java中GC指的是什麼
gc是指垃圾回收機制,當一個對象不能再被後續程序所引用到時,這個對象所佔用的內存空間就沒有存在的意義了,java虛擬機會不定時的去檢測內存中這樣的對象,然後回收這塊內存空間。
8. 在Java中如何主動調用GC
Java的公有API可以主動調用GC的有兩種辦法,一個是
System.gc();
// 或者下面,兩者等價
Runtime.getRuntime().gc();
還有一個是JMX:
java.lang.management.MemoryMXBean.gc()
作用跟System.gc()也是類似的。
MemoryMXBean.gc()和System.gc()的內部實現都是Runtime.getRuntime().gc(),從效果上說兩者一模一樣沒有區別。