我用如下代码做一个简单的实验,发现java进程显示占用了1.4G内存,但在jconsole里怎么才是100M左右。
public static void main(String[] args) throws IOException {
for (int i = 0; i < 100; i++) {
test1();
}
System.gc();
Runtime run=Runtime.getRuntime(); //取得当前jvm的运行时实例
run.gc(); //运行Runtime的垃圾回收方法
System.in.read();
}
/**
* 循环到调用该方法1000次,内存涨到1.4G后不再增长,始终维持这个内存,怎么GC也不降低。
*/
private static void test1() {
for (int i = 0; i < 1000; i++) {
byte[] so = new byte[1000000];
so = null;
}
}
![图片说明](https://img-ask.csdn.net/upload/201711/17/1510887621_909596.png)
点击jconsole的GC按钮,jconsole里占用内存下降了,但是java进程还是1.4G。
![图片说明](https://img-ask.csdn.net/upload/201711/17/1510887652_162531.png)