首页 > 解决方案 > 传递给 List java 的对象的内存引用

问题描述

private final Map<String, List<EventMessage>> namedMessageMap = new HashMap<>();

List<EventMessage> messageList = namedMessageMap.get(queueName);
if (messageList == null) {
      messageList = new ArrayList<>();
      namedMessageMap.put(queueName, messageList);
}

// Add the item in queue
messageList.add(message);

我现在有这段代码我在想一件事,我传递给 namedMessageMap 的消息列表将包含我最后添加的消息?在这种情况下java内存分配如何工作?它指向一个新对象还是指向内存引用?

标签: javaarraylistgarbage-collectiondynamic-memory-allocation

解决方案


新的 ArrayList<>(); 这总是会创建新对象,并且 messageList 指向分配的最新列表。因此它将包含您在最后添加的消息。


推荐阅读