社区
Java SE
帖子详情
垃圾回收问题
benlaten
2011-11-11 04:03:05
.....
ArrayList list = new ArrayList();
Object o = new Object();
list.add(o);
o =null;
.....
上面代码运行后共有几个对象符合垃圾回收要求..
...全文
220
12
打赏
收藏
垃圾回收问题
..... ArrayList list = new ArrayList(); Object o = new Object(); list.add(o); o =null; ..... 上面代码运行后共有几个对象符合垃圾回收要求..
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
龙腾冰
2011-11-13
打赏
举报
回复
都在用呢,没有可以被回收的对象
erer333
2011-11-13
打赏
举报
回复
那个o指向null后,以前所指的对象在java堆内存出现不够时,java 运行垃圾回收机制时,会回收!
lliiqiang
2011-11-12
打赏
举报
回复
都被引用.没有能被回收的对象
haoweishow01
2011-11-12
打赏
举报
回复
[Quote=引用 6 楼 liuxu8821 的回复:]
Object o = new Object();
这里new出来的object 过一阵就要被回收了,因为没有任何引用指向这个object了。
[/Quote]
怎么没有引用指向object了呢。list的add方法是干什么的?
o=null;并不会影响到前面已经加入list的object对象。
按照你的说法,没有任何引用指向这个object,那么list中add的对象岂不是null。再遍历一遍list出来的都是null了?
CherryMs
2011-11-12
打赏
举报
回复
[Quote=引用 6 楼 liuxu8821 的回复:]
Object o = new Object();
这里new出来的object 过一阵就要被回收了,因为没有任何引用指向这个object了。
[/Quote]
6楼正解~
我自横刀香甜笑
2011-11-11
打赏
举报
回复
同意楼上。。。
liuxu8821
2011-11-11
打赏
举报
回复
Object o = new Object();
这里new出来的object 过一阵就要被回收了,因为没有任何引用指向这个object了。
孟祥月
2011-11-11
打赏
举报
回复
都在用呢 程序还没有执行完呢
benlaten
2011-11-11
打赏
举报
回复
那个地址不是指向null 对象怎么没有被回收
jiakai0419
2011-11-11
打赏
举报
回复
[Quote=引用 1 楼 huleeyar 的回复:]
都不回收。都在用呢
[/Quote]
都在用。
若鱼1919
2011-11-11
打赏
举报
回复
[Quote=引用 1 楼 huleeyar 的回复:]
都不回收。都在用呢
[/Quote]
0个
huleeyar
2011-11-11
打赏
举报
回复
都不回收。都在用呢
JVM -
垃圾回收
基本
问题
比方说 JVM 内存结构中的虚拟机栈,虚拟机栈中有栈帧,栈帧里面存储着有指向堆的对象引用,那么位于虚拟机栈顶就可以称作是 “活跃” 的栈帧,因为此刻它正在被线程调用。标记复制算法,简单来说,就是将新生代空间分为两部分,把新创建的对象放在其中一块,等要进行
垃圾回收
的时候,则先将存活对象移动到另一块空间当中,然后将垃圾对象回收。如果没有
垃圾回收
机制的话,则存放对象的内存空间很快就会被塞满,所以为了保证系统能正常地执行,就必须要有
垃圾回收
机制,回收掉没有被使用的对象,也就是垃圾对象。诚恳欢迎大家提出意见Orz。
垃圾回收
面临的
问题
备注:文章来自于网络或者某些视频教程上的文档摘写,如有侵权,实在抱歉,请速与我联系,联系QQ:993884811@qq.com。 如何区分垃圾 前面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断--
垃圾回收
程序收集计数为0的对象即可,但是这种方法无法解决循环引...
JVM
垃圾回收
中的Concurrent Mode Failure
问题
分析
例如,将默认的92%降低到70-80%,可以增加CMS回收的频率,减少老年代空间被占满的风险。但需要注意的是,过低的触发阈值会增加CMS的开销,降低系统吞吐量,因此需要根据应用程序的实际对象分配模式进行权衡。相反,如果内存增长缓慢,触发阈值设置过低,则会增加CMS的触发频率,降低系统整体性能。例如,一个使用CMS且老年代碎片率较高的应用,在处理大量用户并发请求时,可能会因为无法分配足够大的连续内存空间而频繁触发Concurrent Mode Failure,进而导致系统响应延迟激增。是最直接有效的策略。
JAVA
垃圾回收
问题
JAVA
垃圾回收
问题
1:垃圾收集是一种从无用对象回收其所占用的内存,并使回收的内存能够被再次利用的机制。2:无用对象是指它不能被程序中处于活动状态的部分的引用。3:垃圾收集处于低优先级的线程内,当可用内存较少时运行,但不能保证何时运行。4:不可能强制运行
垃圾回收
线程,但是调用语句System.gc()有可能激活垃圾收集程序.5:在
垃圾回收
机制中,无法保证对象被
垃圾回收
的顺
一个
垃圾回收
与线程相关的
问题
c#
垃圾回收
会暂停所有线程,并检查GC的堆中所有对象是否存在引用。如果对象存在“活动的”引用则不进行
垃圾回收
,如果对象不存在“活动的”引用则进行回收。 这里“活动的引用”指的是JIT认为活动的引用 如下: public static void Test() { byte[] bs = new byte[1024 * 1024 * 100]; ...
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章