<分区>
假设以下代码:
public static void main(String []args) {
MessageProcessor processor = Util.createMessageProcessor();
MessageArchiver archiver = Util.createMessageArchiver();
List<Message> messages = new ArrayList<>();
for (int i = 0; i < Util.EXPECTED_TOTAL; i++) {
Message msg = Util.random();
processor.processMessage(msg);
messages.add(msg);
msg = null;
}
archiver.archiveMessages(messages, m -> m.getSubject().startsWith("A"));
Util.validate();
}
我注意到该方法在每个循环中创建对象 msg。要显式删除对象,我设置了 msg=null。我的问题是,Java 的自动垃圾回收会在每个 循环结束时还是在循环退出 之后拾取对象。