java WeakHashMap的问题

Map<String,String>map=newWeakHashMap<String,String>();map.put(newString("mldn"),newSt... Map<String, String> map=new WeakHashMap<String, String>();

map.put(new String("mldn"), new String("www.mldn.cn"));
map.put(new String("zhinangtuan"),
new String("www.zhinangtuan.net.cn"));
map.put(new String("mldnjava"),
new String("www.mldnjava.com.cn"));

System.gc();

map.put(new String("LXH"), new String("lixinghua"));

System.out.print("内容:"+map);
//结果显示:
内容:{LXH=lixinghua}

Map<String, String> map=new WeakHashMap<String, String>();

map.put("mldn", "www.mldn.cn");
map.put("zhinangtuan", "www.zhinangtuan.net.cn");
map.put("mldnjava", "www.mldnjava.com.cn");

new String("www.mldnjava.com.cn"));*/
System.gc();
map.put("LXH", "lixinghua");
System.out.print("内容:"+map);
//结果显示:
内容:{LXH=lixinghua, mldnjava=www.mldnjava.com.cn, mldn=www.mldn.cn, zhinangtuan=www.zhinangtuan.net.cn}

我的问题是为什么没用new显示的结果就不一样了 各位大神请解释详细点 谢谢!! 本人新手
展开
 我来答
蓝风紫电
2013-08-12 · TA获得超过805个赞
知道小有建树答主
回答量:785
采纳率:100%
帮助的人:537万
展开全部
这是由于WeakHashMap自己的特性决定的
在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。
更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。
丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。
null 值和 null 键都被支持。该类具有与 HashMap 类相似的性能特征,并具有相同的效能参数初始容量 和加载因子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂派程序猿
2013-08-12 · 超过16用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:48.3万
展开全部
具体原因不清楚。我猜测是因为“xxx”形式时,会首先从字符串静态池中获取。当获取不到时。会new一个放入静态池。调用。
System.gc();是垃圾回收机制。强制回收。
如果直接new出来的话。此时没有被调用。就会被回收掉。
而静态池的话会保留下来。
希望可以帮你。个人拙见。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式