java中的静态块

时间:2010-10-17 13:34:16

标签: java

为什么静态块的使用被认为是低效的编程实践?

4 个答案:

答案 0 :(得分:3)

静态块与类关联,而不是与实例关联。你失去了多个实例的好处,每个实例都有自己的状态和行为给你。如果你用这种方式编写了一个完整的应用程序,它会向我建议面向对象的语言不适合你或那个问题。

但话虽如此,使用静电在他们有意义的地方没有坏处。没有效率损失。

答案 1 :(得分:2)

我不知道有任何这样的建议。

过度使用静态(特别是静态变量)通常表明OO设计较差。但静态初始化块没有特定的性能问题。

如果您了解此类建议,请提供引文/链接。

答案 2 :(得分:2)

没有具体的例子,很难知道,但永远不要说永远......

当一小部分解决方案处于静态区块时,确实存在一种解决方案可以更清晰的情况,清楚地列在班级的头部。

但是,如果你发现自己在那里放了大量的代码,这可能是一个糟糕的code smell

正如您可能知道,只要类加载器加载了类,静态块中的任何代码都会被初始化。这使您无法控制何时加载它(如果您的系统中有多个类加载器),它会被多次加载,这可能不是您想要的。如果您在静态块中进行大量加载,而不是懒惰,则还会减慢应用程序的启动时间。

答案 3 :(得分:1)

让我们说这取决于你如何使用它。像所有东西一样,它可以被滥用,并且是解决某些问题的低效技术,但是对于其他事情它是有用的。

因此,您不能简单地声明使用静态块效率低下。


关于同一主题: