素材牛VIP会员
java 直接内存回收
 km***04  分类:Java代码  人气:983  回帖:3  发布于6年前 收藏

操作系统可分配jvm的内存空间大小是由限制的,
可用空间=堆+线程栈+直接内存

对于堆而言,jvc通过gc进行垃圾回收。,
那么请问
for(int i=0;i<1024;i++){

ByteBuffer.allocateDirect(1024*1024);
System.out.println(i);
  System.gc();

}


这中方式会在直接内存中分配空间,直接内存是如何回收内存的???

直接内存也是通过gc来回收吗

 标签:java

讨论这个帖子(3)垃圾回帖将一律封号处理……

Lv6 码匠
qq***42 PHP开发工程师 6年前#1

是通过GC回收的,不过GC只会在老年区满了触发Full GC时,才会去顺便清理直接内存的废弃对象

Lv1 新人
Al***ay 职业无 6年前#2

System.gc();是通知(建议)JVM 回收 运行垃圾回收 但是虚拟机听不听你的就不一定了. 所以一般不建议你手动回收内存.楼上说的不错!

Lv5 码农
em***co PHP开发工程师 6年前#3

这个,你要好好的去了解了垃圾回收机制的算法,才好说这个东西了

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取