gpt4 book ai didi

java - 非最终静态字符串是否比静态最终字符串更有效?

转载 作者:行者123 更新时间:2023-11-29 06:18:02 24 4
gpt4 key购买 nike

我刚刚在 BlackBerry 文档中阅读了一篇关于 writing efficient code in J2ME 的文章.

在那篇文章中有一节建议您“对字符串使用静态变量”。原因是,由于编译器将 static final 引用内联为字符串文字,因此最好将其保留为非最终引用(我猜假设是检索静态引用比从字符串池中检索更便宜?)。

所有 JVM 都是这样吗??我上一份工作的老板反复提醒我们,我们应该始终,始终使用 static final 作为我们的常量。我们用 Java 进行嵌入式编程,所以他是一个真正的性能坚持者(尽管我不确定在这种情况下他是否更关心内存或速度)。我的老板从事 Java 多年,非常了解他的东西,所以我采纳了他的建议;现在我得到了相互矛盾的建议!

那么到底哪个更好呢?您可以从内存保护的角度或速度的角度回答问题,也可以针对 J2ME 或 J2SE。

最佳答案

一般来说,它们应该是一样的。 (相同定义为足够接近以至于永远不会重要)

我非常强烈地认为您应该对您的意图进行编码(即根据这是常量还是实例来定义静态与非静态性常量)而不是一些任意的“性能增强”

如果您发现这是一个严重的性能问题(并且只有在您对其进行测量之后!),我会将其归类为编译器/JVM 缺陷并采取解决方法(交换其静态性),并附上评论说明原因。

关于java - 非最终静态字符串是否比静态最终字符串更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com