【发布时间】:2016-05-27 18:35:17
【问题描述】:
我最近一直在与同事讨论什么是好的代码。具体来说,出现了循环内分配的问题。我见过多种情况(在其他语言中),在循环中分配变量可能会受到严重惩罚,而我一次又一次地经历和看到的智慧指出,最好避免这些明显危险的事情。
但是,这似乎不是widely accepted,许多人建议应该依靠热点和javac 来修复任何明显的错误,例如在循环内分配,事实上鼓励实践。
我在 Java 中对此很好,因为它似乎一直为您提升变量的声明而没有不良影响。但我不知道鼓励哪些其他错误作为最佳实践。当有人告诉我做这样的事情时,我是否可以使用资源来验证行为?
【问题讨论】:
-
你的问题对我来说听起来很广泛。一般来说,我认为“资源”是一个运行时分析器。
-
我 answered this question 表明编译的字节码对于在循环内部和外部声明的变量是相同的。它甚至不在 JVM 级别:javac 消除了差异。
-
他说的是“分配”,但我猜他的意思是打电话给
new(或其他语言,malloc)。 -
@markspace 我知道它很广泛,我的问题主要是我不知道我不知道什么——而且我还没有找到任何可以说明我可以期待什么样的优化的东西来自 javac/hotspot。
-
@markspace 我也指分配指针。不是
new,而是声明。
标签: java javac jvm-hotspot