Java运算符性能算法与按位

Java运算符性能算法与按位,java,performance,operators,Java,Performance,Operators,在性能非常重要的重复算术运算中,按位运算符对性能有正面影响还是负面影响?我试着用谷歌搜索,但没有得到一个明确的答案 例如,我应该使用以下内容: int s = 15 << 4; 以提高我的应用程序的性能 是否也与性能相关?在这种情况下,您可以使用其中一种 两者都是编译时可计算的常量表达式,因此编译器将执行该操作。因此,运行时将不会受到任何影响 如果您设计了一个仅在运行时可计算的示例,那么就很难说了,但如果我是您,我无论如何都会信任编译器。始终为您的任务使用合适的操作符,以免bug侵

在性能非常重要的重复算术运算中,按位运算符对性能有正面影响还是负面影响?我试着用谷歌搜索,但没有得到一个明确的答案

例如,我应该使用以下内容:

int s = 15 << 4;
以提高我的应用程序的性能


是否也与性能相关?

在这种情况下,您可以使用其中一种

两者都是编译时可计算的常量表达式,因此编译器将执行该操作。因此,运行时将不会受到任何影响


如果您设计了一个仅在运行时可计算的示例,那么就很难说了,但如果我是您,我无论如何都会信任编译器。始终为您的任务使用合适的操作符,以免bug侵入。您始终可以分析性能。

即使这些操作不是(例如
n此代码)

public class A {
    public static void main(String[] args) {
        int a = 15 << 4;
        int b = 15 * 16;
    }
}

你根本不应该尝试微优化。请不要否决写得好的问题。最好的版本应该是
int s=240;
:P(但编译器无论如何都会写).@为了回答这个问题,这只是一个简单的例子,我使用的是一个非常复杂的方程,它使用了多个位运算符。@Tom:也许不是。有些情况下,如果你“分解”一个常量,你的代码更容易阅读。例如,
seconds\u in\u day=24*60*60
(这里没有什么关系,因为我们在java标签中,但是你必须非常小心C++中的左移,特别是带签名的类型。)
public class A {
    public static void main(String[] args) {
        int a = 15 << 4;
        int b = 15 * 16;
    }
}
  public static void main(java.lang.String[]);
    Code:
       0: sipush        240
       3: istore_1
       4: sipush        240
       7: istore_2
       8: return