如何理解下段代码的输出结果

FuryBiCiSh 2017-12-11 09:47:14
public class Demo01 {

public static void main(String[] args) {
Map<String,Object> map=new HashMap<String,Object>();
test(map);
System.out.println(map);
test2(map);
System.out.println(map);
}
public static void test(Map<String,Object> map){
map.put("msg", "Hello World");
}
public static void test2(Map<String,Object> map){
map=new HashMap<String,Object>();
map.put("data", "OK");
}
}
...全文
163 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
张三顺 2017-12-11
  • 打赏
  • 举报
回复
你要表示什么?
yasashii 2017-12-11
  • 打赏
  • 举报
回复
因为你在打印的时候没有指定key,所以默认两次打印出来的都是第一个保存进去的数据。
FuryBiCiSh 2017-12-11
  • 打赏
  • 举报
回复
内部关于局部对象值的传入过程有些模糊
ooo-ooo 2017-12-11
  • 打赏
  • 举报
回复
test(map)修改的是你void main下面那行创建的map,所以此时的map被put了("msg", "Hello World");test2(map)修改的是在test2里面一个新的map,它没有对上一个map对象进行操作,所以最终你打印的是第一个map对象,而且结果将会全部都是msg: Hello World
bcsflilong 2017-12-11
  • 打赏
  • 举报
回复
有什么问题吗

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧