操作系统可分配jvm的内存空间大小是由限制的,
可用空间=堆+线程栈+直接内存
对于堆而言,jvc通过gc进行垃圾回收。,
那么请问
for(int i=0;i<1024;i++){
ByteBuffer.allocateDirect(1024*1024);
System.out.println(i);
System.gc();
}
这中方式会在直接内存中分配空间,直接内存是如何回收内存的???
直接内存也是通过gc来回收吗
操作系统可分配jvm的内存空间大小是由限制的,
可用空间=堆+线程栈+直接内存
对于堆而言,jvc通过gc进行垃圾回收。,
那么请问
for(int i=0;i<1024;i++){
ByteBuffer.allocateDirect(1024*1024);
System.out.println(i);
System.gc();
}
这中方式会在直接内存中分配空间,直接内存是如何回收内存的???
直接内存也是通过gc来回收吗
4 回答1.7k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
4 回答2.3k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答838 阅读✓ 已解决
2 回答1.4k 阅读
是通过GC回收的,不过GC只会在老年区满了触发Full GC时,才会去顺便清理直接内存的废弃对象