Map map = new HashMap();
map.put("1",new Object());
上面是把new出来的一个对象作为“值”放入了map中。
可是下面的就不理解了:
Object a = new Object();
map.put("1",a);
想问下放入map的到底是new出来的对象的引用(即:a),还是这个对象本身呢?
求解!多谢!
Map map = new HashMap();
map.put("1",new Object());
上面是把new出来的一个对象作为“值”放入了map中。
可是下面的就不理解了:
Object a = new Object();
map.put("1",a);
想问下放入map的到底是new出来的对象的引用(即:a),还是这个对象本身呢?
求解!多谢!
1.hashMap存储的都是地址:
[code="java"]
public class TShashMap {
public static void main(String[] args) {
Map ts = new HashMap();
TSA tsa = new TSA();
tsa.setAge(15);
tsa.setName("hashMap");
ts.put(1, tsa);
System.out.println((TSA)ts.get(1));
tsa.setAge(18);
System.out.println((TSA)ts.get(1));
}
}
class TSA {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "name:" + name + " age:" + age;
}
}
[/code]
楼主跑下上面的i.e就明白了
2.你给的i.e,内存溢出是由于java虚拟机本身的原因,和内存没有关系。
只要存入hashmap中的元素在1<<30之内,就OK