快速Java垃圾回收问题

4
我正在开发一款Android闹钟应用程序,以下是我的代码内容:
ArrayList<PendingIntent> pendingIntents = new ArrayList<PendingIntent>();

public PendingIntent setAlarm(long time) {
    ...other code.
    PendingIntent pi = PendingIntent.getBroadcast(context, num, intent, flags);
    return pi;
}

我想知道如果多次执行以下操作,原始的Pending Intent引用是否会每次被覆盖?
pendingIntents.add(num, setAlarm(1000));
2个回答

2

基本上,你是暂时将对象引用分配给变量pi。变量被覆盖了,但对象没有被覆盖。它可以安全地添加到你的列表中以备将来使用。


这正是我想的。谢谢! - thomas farrell
@thomas farrell,很高兴能帮到你。如果这个答案解决了你的问题,请通过点击答案旁边的上箭头将其标记为已回答。在这里查看如何操作 - Nishant

2

不,不是这样的。

每次调用add方法时,都会在指定索引后插入一个元素。

也许你想使用set方法。它会替换num位置上的项目,旧值将变为可回收垃圾。


不是。我想确保在堆上创建的对象都是独立的对象,我的ArrayList中的每个对象都指向每个单独的对象。谢谢! - thomas farrell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接