日期:2014-05-20  浏览次数:20560 次

关于引用地址和物理地址的一个困惑
Java code
@Test
    public void testObject() {
        ArrayList list = new ArrayList();
        System.out.println("a : " + list.hashCode());
        changeObject(list);
        System.out.println("d : " + list.hashCode());
    }
    
    public void changeObject(ArrayList list) {
        System.out.println("b : " + list.hashCode());
        list.add("1");
        System.out.println("c : " + list.hashCode());
    }



结果是:
a : 1
b : 1
c : 80
d : 80

无法理解输出,求大侠指点!

------解决方案--------------------
hashcode一般用在hash表中
建议lz看看这个blog,我觉得写的不错。http://www.blogjava.net/ycfdonews/articles/168476.html
------解决方案--------------------
hashcode 是物理地址的引用,当你add()的时候,物理存储空间就大了,所以地址也变化了