Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以有多个静态变量实例_Java_Static - Fatal编程技术网

Java 是否可以有多个静态变量实例

Java 是否可以有多个静态变量实例,java,static,Java,Static,静态变量只有实例(即它们是类的一部分)。 例:Math.pi 有没有可能存在多个静态变量的实例? 我听说有一些与类加载器相关的东西?如果您发现需要一个静态变量的多个实例,这强烈表明您不应该首先使用静态变量 是的,如果在不同的类加载器中加载同一个类,那么该类的每个副本都将有自己的静态。但是,唯一可以静态引用这些静态的代码是由同一个类加载器加载的类。当然,代码只能(静态地)在类的一个副本中看到静态。所以你可能没有取得很多成就 与其与类加载器混为一谈,不如重构代码,将静态变量转换为实例变量。@sati

静态变量只有实例(即它们是类的一部分)。 例:Math.pi

有没有可能存在多个静态变量的实例?
我听说有一些与类加载器相关的东西?

如果您发现需要一个静态变量的多个实例,这强烈表明您不应该首先使用静态变量

是的,如果在不同的类加载器中加载同一个类,那么该类的每个副本都将有自己的静态。但是,唯一可以静态引用这些静态的代码是由同一个类加载器加载的类。当然,代码只能(静态地)在类的一个副本中看到静态。所以你可能没有取得很多成就


与其与类加载器混为一谈,不如重构代码,将静态变量转换为实例变量。

@satish-所以我没有说服你这是个坏主意?重点不是坏主意,而是试图理解多个类加载器背后的想法。如果你遇到任何教程或例子,一定要告诉我。感谢您的回答:-)有时您不得不使用一个类库,它的类会吐到整个静态区域,因此不可能获得多个稳定实例。如果我被迫使用这样一个库,那么定制类加载器只是一根更长的棍子。(:我想你(也许还有其他人)如果你把精力集中在修复那个垃圾库上,从长远来看会更好。要么修复它,要么更换它。