程序
这个程序是有问题的,我们通过一些命令来分析这个程序究竟是哪里出了问题。首先把当前的程序通过SSH工具传输到centos系统中,之后我们就可以在linux环境下编译和执行。
注意一点:上面类的名字是Z,但是在linux环境下,我们将其改为了AA,并且文件名改为了AA,所以文章下面出来AA,不要感觉奇怪。
编译和执行
编译
javac Z.java
执行
java -Xms200M -Xmx200M -XX:+PrintGC Z
在执行的过程中,我们指定了参数,其中堆的空间最小为200M,最大也是200M,也就是堆空间大小就是200M,然后我们指定printGC,这个表示输出GC的过程,最后指定Z,表示执行Z程序。
GC的过程
整体来说可以分为两个过程,初期的时候进行普通的GC,后期就是FGC
我们可以看到后期的FGC几乎回收不了什么空间了