java - 传递给 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内存分配如何工作?它指向一个新对象还是指向内存引用?
解决方案
新的 ArrayList<>(); 这总是会创建新对象,并且 messageList 指向分配的最新列表。因此它将包含您在最后添加的消息。
推荐阅读
- wpf - 我在资源字典中定义的样式无法解析
- laravel - 多张图片上传不起作用Laravel 6
- javascript - 如何随机选择2个数字中的数字。p5js
- php - 从注册页面中删除必填地址字段:Opencart 2.3.0.2
- javascript - 获取具有多个 ID 的 firebase firestore 文档
- c - 如何从预处理器启用内在功能
- android - 我无法更新列表视图
- visual-studio - 如何在 asp.net.core 中使用 Ajax 发布表单数据和文件
- algorithm - 图表:找到最小数量的节点,以便从 a 到 b 的每条路径至少穿过其中一个
- c++ - 从一个索引中删除一个元素是否会从第二个索引中删除相应的条目 boost::multi_index