今天犯了一个错误❌,就是我以为把对象放在map里,然后再对对象进行操作是无用的,其实我错了。
Java中的对象变量 其实就中一个指针,他指向对象的首地址,map中key对应的其实是某个对象的首地址,指向的是某个对象,你往对象中加了数据,对象的内容变了,但是对象的首地址没有变,map中的key仍然指向的是这个对象的首地址。
例子:
import java.util.HashMap;
import java.util.Map;
public class Test_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person("zhangsan", 20);
Map map=new HashMap<String,String>();
map.put("person", p);
p.setAge(50);
System.out.println(map.get("person"));
}
}
打印结果是
Person [name=zhangsan, age=50]
所以可得:对象传的是引用地址,地址没变,内容变化,也会引起调用该对象的其他内容的变化。