java知道释放内存会不会误把有用的内存释放了?

Java系统自动对内存进行扫描,自动释放长期不用的内存空间,避免了内存泄露那java在释放内存时会不会误把有用的内存释放了?... Java系统自动对内存进行扫描,自动释放长期不用的内存空间,避免了内存泄露

那java在释放内存时会不会误把有用的内存释放了?
展开
 我来答
王道道环球
2013-01-27 · 超过26用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:47.3万
展开全部
有可能,但是没有什么影响
首先,根本不存在有用的内存这个说法。简单来说,可以把内存看成一个巨大的缓存(相较于真正的cache而言),内存中的一切数据都是暂时的,程序在运行时成为进程,占用内存空间,进程生命周期结束后是大多是会释放内存空间的。为了提高运行速度,少数进程会较长时间的占用内存。

java提供了很多方法来判断内存空间是否可以被释放掉,但是一处已分配的内存空间对操作者是否有用java无法完全做出正确的判断,比如一个局部变量,在方法结束后是一定会被释放的,即便你会很频繁的调用并希望它能一直保有内存。

没有影响是因为内存只是一个缓存,释放了再重新分配就好,只不过是速度慢了些,任何检测的算法都只能是尽量提高速度。
llei32wang
2013-01-27 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1397万
展开全部
不会的,java释放内存时是检查对象是否被引用了,引用的是不会被释放的,只有不再被引用的对象占用的内存在会被会收。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoyu52331314
2013-01-29 · TA获得超过278个赞
知道小有建树答主
回答量:404
采纳率:0%
帮助的人:230万
展开全部
java里面的静态变量只会在内存中分配一次,并且在main方法结束以后释放掉占用的内存,而局部变量可能会存在和销毁多次,关键看调用的次数,如果没有指针指向他就会销毁掉。而IO则需要在使用完以后手动关闭,否则需要main方法执行完以后才会释放掉占用的资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liulinisgood
2013-01-29
知道答主
回答量:3
采纳率:0%
帮助的人:3849
展开全部
基本不会,但是内存泄露还是会存在的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuwenxue000
2013-01-27
知道答主
回答量:14
采纳率:0%
帮助的人:11.5万
展开全部
有用的一般都会放年老代,年老代进行一次fullGC比较慢,年轻代会比较快的释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式