区别

sxlcom 2011-09-28 10:06:02
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());
...全文
130 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lliiqiang 2011-09-28
  • 打赏
  • 举报
回复
没有区别,又重新赋值map111331=map111221;
原来的创建的map111331对象被抛弃了
sxlcom 2011-09-28
  • 打赏
  • 举报
回复
Map map11122=new HashMap();
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内存地址)
????????????????????????????
sxlcom 2011-09-28
  • 打赏
  • 举报
回复
Map map111331=new HashMap();
map111331=map111221;
-------------------------
你是说以上的语包是new了一个HashMap,但在执行map111331=map111221时其实又new了一个包含map111221对象数据的HashMap给了map111331,也就是一开始new了对象并未使用
不知我理解的对不对
TKD03072010 2011-09-28
  • 打赏
  • 举报
回复
map11133 map11122
二者通过map11133=map11122 指向了同一个对象
Map map111331=new HashMap(); 创建了一个HashMap()对象
Map map111331=null 只是声明一个Map对象,并没有具体指向哪个对象
风尘中国 2011-09-28
  • 打赏
  • 举报
回复
逻辑实现上没有任何区别,因为后来你吧
map11133=map11122;
map111331=map111221;
事实上导致两个对象引用都是指向另外的对象,而另外两个对象的数据是一样的
你用Map map111331=new HashMap();只是新建了一个对象,将引用指向整个对象,但是整个对象从来没被使用,后来的引用指向了其他对象
Map map111331=null 只是声明,没有新建对象
后来的引用指向了其他对象
[Quote=引用 3 楼 sxlcom 的回复:]
我是想问题对于
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(……
[/Quote]
oO临时工Oo 2011-09-28
  • 打赏
  • 举报
回复
没什么区别,下面的多建了一个对象HashMap
sxlcom 2011-09-28
  • 打赏
  • 举报
回复
我只是随便做个测试
sxlcom 2011-09-28
  • 打赏
  • 举报
回复
我是想问题对于
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());
在红色区域是写法的主要区别但输出结果是一样的,有什么区别?
liuyuhua0066 2011-09-28
  • 打赏
  • 举报
回复
这样的命名你都不怕把自己搞糊涂了?
dinglimin2009 2011-09-28
  • 打赏
  • 举报
回复
楼主想问什么?

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧