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

强行终止javaw进程会导致内存泄漏吗?
rt~

请说明理由,如果内存泄漏,java有没有可能在以后回收,还是一定要重启机器或注销才能恢复泄漏的内存。
问题补充:如果不会泄漏,那内存是什么时候被回收的?


------解决方案--------------------
操作系统会回收内存的吧
------解决方案--------------------
java已经被关闭了,还怎么回收?回收干什么?
如果是说关闭javaw进程后系统仍然频繁分页操作,实际上是因为操作系统缓存了javaw运行时使用的资源文件,以备下次启动程序时可以减少加载时间,并非内存泄漏。
------解决方案--------------------
java开始运行的时候JVM开辟内存空间(可以设定),在那个内存领域里执行。

通过windows的task管理强制终了javaw,那么windows会把jvm所使用的内存清掉。

------解决方案--------------------
进程终止的时候,操作系统会自动把进程的内存释放
------解决方案--------------------
楼主可以这样理解:
jvm是别人写好的没有内存泄露的程序,java程序运行在jvm之上,jvm退出的时候os就回收jvm占用的内存
而C++可以直接调用os的资源,如果没有释放就回内存泄漏了
------解决方案--------------------
> 那这样的话,C++不也不会内存泄漏了吗?

你这样说也没错。你自己用 C++ 写一个程序,尽管去做内存泄漏的事情,只要你这个进程被“强行终止”,所有被这个进程分配过的内存都会被操作系统收回。
------解决方案--------------------
JAVA是基于虚拟机的党你终止就阿java程序 自动回收虚拟机中间的内存
------解决方案--------------------
把jvm理解为一般的应用程序
------解决方案--------------------
c++的内存泄漏,并不是说操作系统不回收进程内存;而是指进程自己不回收,导致长时间运行以后,内存溢出
不知道说清楚没有,呵呵