Map map11122=new HashMap();
map11122.put("1", "A");
Map map11133=null;
map11133=map11122;
System.out.println("11111---"+map11133.toString());Map map111221=new HashMap();
map111221.put("1", "A");
Map map111331=new HashMap();
map111331=map111221;
System.out.println("22222---"+map111331.toString());
map11122.put("1", "A");
Map map11133=null;
map11133=map11122;
System.out.println("11111---"+map11133.toString());Map map111221=new HashMap();
map111221.put("1", "A");
Map map111331=new HashMap();
map111331=map111221;
System.out.println("22222---"+map111331.toString());
解决方案 »
- (年龄输入框)用getText()获得字符串怎么转换成整形?
- JAVA中的一个小问题!
- Class.forName的作用
- 帮我看下这段查询数据库的程序 为什么查询第2个查询条件的时候出错,回答的好分更多
- Socket问题,请教各位
- 请问多线程的例子,明明是输出偶数的,怎么回事?在线等,解决了就加分!!
- 如何去掉指定Jtable某一列的焦点?
- 关于包的简单问题
- 如何获取控件在哪个jpanel上面,,,哪个函数啊???
- 小弟刚学Java,请问在哪里能下载到《Java程序设计入门教程》这本书的电子版,谢谢!!!
- 父类引用指向子类对象Set s = new HashSet();
- 在DOS下如何编译和运行带包的Java文件
Map map11122=new HashMap();
map11122.put("1", "A");
Map map11133=null;map11133=map11122;
System.out.println("11111---"+map11133.toString());Map map111221=new HashMap();
map111221.put("1", "A");
Map map111331=new HashMap();map111331=map111221;
System.out.println("22222---"+map111331.toString());
在红色区域是写法的主要区别但输出结果是一样的,有什么区别?
map11133=map11122;
map111331=map111221;
事实上导致两个对象引用都是指向另外的对象,而另外两个对象的数据是一样的
你用Map map111331=new HashMap();只是新建了一个对象,将引用指向整个对象,但是整个对象从来没被使用,后来的引用指向了其他对象
Map map111331=null 只是声明,没有新建对象
后来的引用指向了其他对象
二者通过map11133=map11122 指向了同一个对象
Map map111331=new HashMap(); 创建了一个HashMap()对象
Map map111331=null 只是声明一个Map对象,并没有具体指向哪个对象
map111331=map111221;
-------------------------
你是说以上的语包是new了一个HashMap,但在执行map111331=map111221时其实又new了一个包含map111221对象数据的HashMap给了map111331,也就是一开始new了对象并未使用
不知我理解的对不对
map11122.put("1", "A");
Map map11133=null;
map11133=map11122;
System.out.println("11111---"+map11133.toString());
-------------------------
以上的Map map11133=null;
map11133=map11122;
语句是不是new了一个包含map11122数据的Map给了map11133还是只是引用了map11122(引用了map11122内存地址)
????????????????????????????
原来的创建的map111331对象被抛弃了