在Java中,我们使用System.setProperty()方法来设置一些系统属性.根据这篇文章,使用系统属性有点棘手.
System.setProperty()可能是一个邪恶的调用.
- 这是100%线程敌对
- 它包含超全局变量
- 当这些变量在运行时神秘地改变时,调试极其困难.
我的问题如下.
系统属性的范围如何?它们是否特定于每个虚拟机,或者它们具有"超级全局特性",它在每个虚拟机实例上共享相同的属性集?我猜选项1
是否有任何工具可用于监视运行时更改以检测系统属性中的更改.(仅为了便于检测问题)
我们知道我们可以用以下方式覆盖System 类加载器:
java -Djava.system.class.loader=com.test.MyClassLoader xxx
Run Code Online (Sandbox Code Playgroud)
那么,因为com.test.MyClassLoader它本身就是一个类,它是由谁加载的?
我们如何获得这个"meta"类加载器的类文件?