list存放object随笔

来源:互联网 发布:航天 开票软件下载 编辑:程序博客网 时间:2024/05/17 01:35
今天偶然有人问起,list里存放的是对象的引用,如果这个引用这时候指向别的对象,那之前的对象的引用到哪里去了。先看到代码:
    public static void test1(){        List<Object> array = new ArrayList<Object>();        Map<String,Object> object = new HashMap<String,Object>();        object.put("a", "a");        array.add(object);        object.put("a1", "change");        System.out.println(array.toString());        //1、此处输出:[{a1=change}],验证了list存放的是对象的引用。        object = new HashMap<String,Object>();        object.put("b", "b");        array.add(object);        System.out.println(array.toString());        //2、此处输出:[{a=change}, {b=b}],    }

从代码2处的输出可以看出,把引用”object”指向另一个对象b,再把object保存到list中,list包含了之前的对象a和新的对象b,object=new HashMap()这段代码之后,object和对象a的引用关系解除,object指向新的对象b,但list中还是存有指向对象a的内存地址,所以对象a还存在list中。

0 0
原创粉丝点击