map引用传递问题???????????

Map> map=new HashMap<>();
List l=new ArrayList<>();
l.add(123);
map.put("yu",l);
List list=map.get("yu");
list.add(123);
System.out.println(map);

            为什么list存的值回到map里?

你new 了一个 ArrayList<>(); 这个时候就是有一块内存存放该对象, 然后 你 l 和list 都只是声明的那个对象的引用, 就像指针的概念, 虽然是2个不同的对象,在你看来, 但是实际上他们都是指向同一个内存地址

这是JAVA特有的处理内存的规则,虽然list是从map中取出,但是在内存中这个list==l。