日期:2014-05-20  浏览次数:20670 次

关于内存垃圾回收的疑问
     这几天看了一下windows的内存分配与回收机制,以及jvm的垃圾回收机制,之前也查找了很多资料但还是感到有些不解,希望好心人能够给予帮助。
     我的问题如下:
     jvm的垃圾回收机制需要windows操作系统的参与吗?windows给jvm分配一个固定的堆空间,然后把堆的分配和回收交给JVM(也即有jvm管理堆的空闲链表和使用链表),最后当jvm退出时由windows系统回收之前分配给jvm的堆空间,还是jvm通过windows系统调用来间接管理堆的空闲链表和使用链表。


内存分配 jvm

------解决方案--------------------
java代码和操作系统没关系,JVM是运行class的容器,java代码执行本质上在内存位上填充数字的过程。

楼主可以这样想,电脑里面基本的是可以存储 0101 的内存,什么链表,堆,栈都是人为定义的,存取方式不同而已。楼主可以想下 jvm 运行下到 windows 只剩下一条一条的指令了
------解决方案--------------------
JVM可以从window里获取一部分内存使用。
这些事情都由他自己决定,和window无关了吧。