黑马程序员技术交流社区

标题: System类取出系统属性信息的问题 [打印本页]

作者: 孙茜茜    时间: 2013-6-20 16:14
标题: System类取出系统属性信息的问题
已经把属性信息装进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));
复制代码

作者: 孙茜茜    时间: 2013-6-20 16:15
==  已经导过System类了
作者: 王靖远    时间: 2013-6-20 16:38
Properties是一个map集合啊。setProperty就是给集合中添加一组键值对。
作者: Super_Class    时间: 2013-6-20 17:40
  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.                 }
复制代码

作者: msileandroid    时间: 2013-6-20 18:17
你可以这样理解,Properties prop = System.getProperties(); 获取了系统的属性,但是prop是在内存中的, prop.setProperty("xxxxxxx", "--------");就是把键值对添加到内存里的prop中;虚拟机关了就没有你添加的属性了;每次加载虚拟机是都会加载系统的属性...
作者: 孙茜茜    时间: 2013-6-20 19:26
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集合里呢?
作者: 袁梦希    时间: 2013-6-20 19:44
看看我的金币呢
作者: 王靖远    时间: 2013-6-20 20:16
调用的是hashtable的put方法。
put(K key, V value)
          将指定 key 映射到此哈希表中的指定 value。
这不就是在集合中添加元素吗。
作者: 孙茜茜    时间: 2013-6-20 21:54
王靖远 发表于 2013-6-20 20:16
调用的是hashtable的put方法。
put(K key, V value)
          将指定 key 映射到此哈希表中的指定 value ...

你的意思是setProperty("mmmmmmmmmmmm","hahaha")的时候自动调用hashtable的put吗
作者: 王靖远    时间: 2013-6-20 22:04
孙茜茜 发表于 2013-6-20 21:54
你的意思是setProperty("mmmmmmmmmmmm","hahaha")的时候自动调用hashtable的put吗

是的。api文档里写的不是我瞎说的。
作者: ⋛⋌⋚JEEP    时间: 2014-7-14 23:39
Super_Class 发表于 2013-6-20 17:40

学习了{:3_57:}
作者: 张周飞    时间: 2014-7-15 10:35
楼主的问题很好,也同时解决了我还不懂的问题
沙发 回复的 好详细了 ,受益匪浅,果断收藏起来。。。
作者: 钟翠翠    时间: 2014-7-17 09:01
虽然还没学到这里,但来到楼主的问题和沙发门的回答,秒懂了。赞!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2