Java ( 1 << 2) 中的这个表达式是什么?

thu*_*clh 4 java expression

我不知道这是什么意思“1 << 2”:

public static final int MODIFY_METADATA = 1 << 2; // modify object
Run Code Online (Sandbox Code Playgroud)

请帮我!

Jef*_*rey 5

Java 运算符

按位运算

<< 是左位移运算符。


Pet*_*rey 5

如果您想知道为什么要使用 use1 << 2而不是 4 是相同的值,那是因为您明确希望使用位掩码,例如

public static final int FLAG0 = 1 << 0;
public static final int FLAG1 = 1 << 1;
public static final int MODIFY_METADATA = 1 << 2;
Run Code Online (Sandbox Code Playgroud)

显示每个值都在位掩码中。