用于分析此处理能力的比率是多少:
boolean: true != false
与此相对:
int: 1 != 0
答案 0 :(得分:4)
答案是JVM和特定于应用程序,但我希望您看不到可测量的差异。 (我说它是特定于应用程序的,因为周围的上下文可能会影响JIT编译器生成最佳本机代码的方式。)
说真的,如果你正在考虑在这个级别进行微观优化,你几乎肯定浪费你的时间。 JIT编译器可以做得比你做得更好,你甚至可能发现重写代码以使用int
代替boolean
禁止优化。
最有效的策略是编写代码以使其可读,并专注于算法和数据结构的设计。如果您实施的代码太慢,只有微优化,当您决定这样做时,使用分析来告诉您在哪里集中精力。
答案 1 :(得分:1)
假设这些是变量,而不是常数,可能没有任何区别。
答案 2 :(得分:1)
它们实际上是相同的成本,但真正的答案是它依赖于虚拟机等。如果JVM包含布尔值(因为这个问题答案可能建议布尔数组:What is the size of a boolean variable in Java?)然后访问布尔值可能需要一些额外的算法来屏蔽重要的位/字节。但是,它的成本通常是相同的。