java中的"<<"运算符

Fer*_*büz 2 java operators

Fallowing语句来自java的Character类:

(1 << Character.PARAGRAPH_SEPARATOR)) >> type
Run Code Online (Sandbox Code Playgroud)

PARAGRAPH_SEPARATOR是一个字节,type是一个整数.

这句话的经营者,他们做了什么?我如何以及在哪里使用这些运营商?

这是oracles java.lang.Character doc.几乎所有类中的方法都使用这些运算符.

Mar*_*tos 7

他们是位移运算符.<<将位"向左"(向最高位)移位,反之亦然>>.左移或右移n位与分别乘以或除以2 n几乎相同.

有关如何在此上下文中使用这些运算符的说明,请参阅@ axtavt的注释.

  • 它可以作为高度优化的多重比较.完整表达式看起来像`(((1 << Character.LINE_SEPARATOR)|(1 << Character.PARAGRAPH_SEPARATOR))>> type)&1)!= 0`,如果`type`匹配其中一个,则返回`true`常数.表达式的第一部分也是编译时常量. (2认同)