code: public static synchronized void registerSystemPropertiesListener(PropertiesListener listener) {
  		Properties currentProperties = System.getProperties();
  
  		// 将System的properties实现替换为ListenableProperties
  		if (!(currentProperties instanceof ListenableProperties)) {
  			ListenableProperties newProperties = new ListenableProperties(currentProperties);
  			System.setProperties(newProperties);
  			currentProperties = newProperties;
  		}
  
  		((ListenableProperties) currentProperties).register(listener);
  	}
docs: Properties 本质上是一个HashTable，每次读写都会加锁，所以不支持频繁的System.getProperty(name)来检查系统内容变化 因此扩展了一个ListenableProperties,
  在其所关心的属性变化时进行通知.
  
  @see ListenableProperties