请教一个内存回收问题
public static void test(){
{
byte[] b =new byte[6*1024*1024];
}
System.gc();
System.out.println("first explict gc over");
}
这段代码的GC过程如下:
[GC 271K->151K(5056K),0.0015089 secs]
[Full GC 151K->151K(5056K),0.0115487 secs]
[Full GC 7375k->(12284k),0.0097229 secs]
first explict gc over
哪位朋友能够看懂这段代码GC过程,还望不吝赐教,万分感激。
------解决方案--------------------
1. -XX的都是JVM参数, 我在eclipse里面运行直接填在jvm args那个框里面就行了, 命令行运行的话,直接加在java 后面就行了,比如 java -jar xxx.jar -XX:+PrintGC -XX:+PrintGCDetails
2. 7496k是新生代回收前使用了多少空间,480k是回收后使用了多少空间,(38912K)是当前可用的总空间。
3. 里面都是垃圾回收使用的时间。看real就行了,这次垃圾回收用了0.01秒
------解决方案--------------------不用关心这问题吧,如果效率影响不大,没用的自动就会回收,如果你特考虑效率可以自己选用回收器,主页上就有16%项目有用到,初学者还是先大体,后细节