为什么静态块的使用被认为是低效的编程实践?
答案 0 :(得分:3)
静态块与类关联,而不是与实例关联。你失去了多个实例的好处,每个实例都有自己的状态和行为给你。如果你用这种方式编写了一个完整的应用程序,它会向我建议面向对象的语言不适合你或那个问题。
但话虽如此,使用静电在他们有意义的地方没有坏处。没有效率损失。
答案 1 :(得分:2)
我不知道有任何这样的建议。
过度使用静态(特别是静态变量)通常表明OO设计较差。但静态初始化块没有特定的性能问题。
如果您了解此类建议,请提供引文/链接。
答案 2 :(得分:2)
没有具体的例子,很难知道,但永远不要说永远......
当一小部分解决方案处于静态区块时,确实存在一种解决方案可以更清晰的情况,清楚地列在班级的头部。
但是,如果你发现自己在那里放了大量的代码,这可能是一个糟糕的code smell。
正如您可能知道,只要类加载器加载了类,静态块中的任何代码都会被初始化。这使您无法控制何时加载它(如果您的系统中有多个类加载器),它会被多次加载,这可能不是您想要的。如果您在静态块中进行大量加载,而不是懒惰,则还会减慢应用程序的启动时间。
答案 3 :(得分:1)
让我们说这取决于你如何使用它。像所有东西一样,它可以被滥用,并且是解决某些问题的低效技术,但是对于其他事情它是有用的。
因此,您不能简单地声明使用静态块效率低下。