好像double-brace initialization increases overhead .
在方法内部使用大括号是否也会降低性能?
例如。
public class DoIReducePerformanceToo {
public void aMethod() {
{
// Is it a bad idea to use these?
}
}
}
我看过 Java 的 grammar似乎这被归类为一个 block :
Block:
{ BlockStatements }
BlockStatements:
{ BlockStatement }
BlockStatement:
LocalVariableDeclarationStatement
ClassOrInterfaceDeclaration
[Identifier :] Statement
但我不确定语法双括号初始化落在何处。
我的问题:在方法中使用 block 语句会降低 Java 的性能吗?这些 block 是否与双括号初始化具有相同的性质?
编辑:
内部类实例化是:
ClassCreatorRest: Arguments [ClassBody]
ClassBody:
{ { ClassBodyDeclaration } }
最佳答案
双括号初始化技巧与普通作用域无关。
相反,它会创建一个匿名类来继承您初始化的类型,并在初始化 block (这是构造函数的语法糖)中运行您的代码。
这个额外的类有开销。
关于java - 在 Java 方法中使用大括号会降低性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17558977/