Java的垃圾收集的问题(60分)
1.如何强迫虚拟机立即进行垃圾收集?好象用System.gc();也是不行的。而且是进行彻底的回收,因为我用optimizeit profiler看到垃圾回收时它不彻底,虚拟机回收到一定程度就不回收了,而此时用optimizeit profiler进行回收时还可以回收很多。
2.当虚拟机检查到分配的堆栈快不够用时,它才进行垃圾的回收,可此时虚拟机往往要扩大总的堆栈的大小(因为回收时它需要内存),这样分配的总堆栈大小就会增加,而且如此反复,总堆栈不断增大,而且虚拟机总是在分配的堆栈快用完的时候再进行垃圾回收,最后,内存溢出异常。 请问有没有啥办法让虚拟机在内存不是快用完时回收,而是在差一定数量时回收?(这个问题其实和第一个问题差不多)。
3. 如果我有一个方法,在里面new了一个panel,这个panel里又包容了另外的一些组件,如button, scrollpanel等等。 当我不断的调用该方法时,请问以前new的panel可以被回收吗?当然,已经没有任何的引用指向该panel了。 还有,这个panel包容的另外的组件会被回收吗(因为我用optimizeit看,好象是不会被回收的)?