你a类的map是不是做静态了?最好有代码

解决方案 »

  1.   

    第一个,由于map是一个对象,所以在进行参数传递的时候传递的是map在内存中的地址,也就是说a类中的map和b类中的map指向的是同一个对象,也就是你操作的是同一个map。
      

  2.   

    不光是map,除了基本类型和string外,随便找个类作为参数传递都是这样
      

  3.   

    不是静态的class A{
        public void a(){
           Map map=new HashMap();
           B bb=new B();
           bb.b(map);
           map.get("key");
        }
    }第一种情况
    class B{
        public void b(Map map){
            map.put("key","value");    }
    }第二种情况class B{
        public void b(Map map){
            Map mapb=new HashMap();
            mapb.put("key","value");
            map=mapb;
        }
    }
    A类调用第一种情况能的到value,调用第二种情况不能的到value,谢谢
      

  4.   

    那第二种情况A里的map指向的引用没变?