A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙茜茜 中级黑马   /  2013-6-20 16:14  /  2715 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已经把属性信息装进pp里面了,再给系统加一条属性("mmmmmmmmmmmm","hahaha"),结果遍历pp的时候打印出了这个新加的,为什么?
setProperty怎么能操作pp的呢,pp拿到信息了不就独立了吗?换句话说setProperty到底操作的是谁?
  1. Properties pp=getProperties();
  2.                 setProperty("mmmmmmmmmmmm","hahaha");
  3.                 for(Object ss:pp.keySet())
  4.                         out.println(ss+"+++++"+pp.get(ss));
复制代码

评分

参与人数 1技术分 +1 收起 理由
Super_Class + 1

查看全部评分

12 个回复

正序浏览
虽然还没学到这里,但来到楼主的问题和沙发门的回答,秒懂了。赞!
回复 使用道具 举报
楼主的问题很好,也同时解决了我还不懂的问题
沙发 回复的 好详细了 ,受益匪浅,果断收藏起来。。。
回复 使用道具 举报

回帖奖励 +10

回复 使用道具 举报
孙茜茜 发表于 2013-6-20 21:54
你的意思是setProperty("mmmmmmmmmmmm","hahaha")的时候自动调用hashtable的put吗

是的。api文档里写的不是我瞎说的。
回复 使用道具 举报
王靖远 发表于 2013-6-20 20:16
调用的是hashtable的put方法。
put(K key, V value)
          将指定 key 映射到此哈希表中的指定 value ...

你的意思是setProperty("mmmmmmmmmmmm","hahaha")的时候自动调用hashtable的put吗
回复 使用道具 举报
调用的是hashtable的put方法。
put(K key, V value)
          将指定 key 映射到此哈希表中的指定 value。
这不就是在集合中添加元素吗。
回复 使用道具 举报

回帖奖励 +10

看看我的金币呢
回复 使用道具 举报
msileandroid 发表于 2013-6-20 18:17
你可以这样理解,Properties prop = System.getProperties(); 获取了系统的属性,但是prop是在内存中的, p ...

static String setProperty(String key, String value) 这个函数是System类的,我导过System了所以直接方法名调用,其实就是System.setProperty("csvsd","gvsdvs"),我问的意思是,已经把数据拷进map集合里了,再去把原始数据修改,这些修改效果怎么会体现到那个map集合里呢?
回复 使用道具 举报

回帖奖励 +10

你可以这样理解,Properties prop = System.getProperties(); 获取了系统的属性,但是prop是在内存中的, prop.setProperty("xxxxxxx", "--------");就是把键值对添加到内存里的prop中;虚拟机关了就没有你添加的属性了;每次加载虚拟机是都会加载系统的属性...

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报

回帖奖励 +10

  1. Properties prop = System.getProperties();  //这里获取的是系统属性
  2.                

  3. //添加系统信息
  4.                 prop.setProperty("xxxxxxx", "--------");
  5.                 Set<String> keySet = prop.stringPropertyNames();
  6.                 for(String key :keySet){
  7.                         String value = prop.getProperty(key);
  8.                         System.out.println(key+"::"+value);
  9.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报

回帖奖励 +10

Properties是一个map集合啊。setProperty就是给集合中添加一组键值对。
回复 使用道具 举报
==  已经导过System类了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马