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(),从效果上说两者一模一样没有区别。