java - 在 Java 方法中使用大括号会降低性能吗?

标签 java performance block

好像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/

相关文章:

c# - 领域与属性(property)。性能优化

ruby - 我如何在 ruby​​ 中返回一段代码

ruby-on-rails - 带有返回语句的 block 上的 Ruby 产量不一致

java - 如何使用 Java 6 针对 Java 1.4 库构建 Java 项目?

Java 列表作为第一项应始终具有特定值

java - 如何在文件中存储一小段信息而不弄乱其内容?

ruby-on-rails - ruby on rails block 语法使用 & :

java - Java 垃圾收集器可以随机删除堆上层中的对象吗?

c++ - 小的重复算术与创建新变量

ruby - Ruby 1.9 中非并发 Ruby 线程的优点?