Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java7中的管道操作符_Java_Operators_Pipe - Fatal编程技术网

Java7中的管道操作符

Java7中的管道操作符,java,operators,pipe,Java,Operators,Pipe,我最近在一个代码示例中看到了以下内容: f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH ); 其中f是JFrame。这个管道操作符是如何命名的,它做什么,在哪里可以找到有关它的文档 多谢各位 Héctor在Java中,|运算符是 按位or的结果是一个值,如果相应的位在其中一个或两个操作数中都设置了,则该值中设置了位 这里,该操作使用二进制文件0000 0110中的JFrame.MAXIMIZED_值,以确保第二位到最

我最近在一个代码示例中看到了以下内容:

f.setExtendedState( f.getExtendedState()|JFrame.MAXIMIZED_BOTH );
其中f是JFrame。这个管道操作符是如何命名的,它做什么,在哪里可以找到有关它的文档

多谢各位 Héctor

在Java中,|运算符是

按位or的结果是一个值,如果相应的位在其中一个或两个操作数中都设置了,则该值中设置了位


这里,该操作使用二进制文件0000 0110中的JFrame.MAXIMIZED_值,以确保第二位到最后一位和第三位到最后一位打开,一位用于水平,一位用于垂直。这使得f.getExtendedState中的所有其他位保持不变。

|表示按位包含或运算符。请在此处查看详细信息:


该“管道”实际上是一个按位包含或。f、 getExtendedState和JFrame.MAXIMIZED_可能都是位字段中的数字索引。使用“or”运算符将两者的属性组合为一个值。

管道|运算符只是按位or运算符。它将通过两个数字的相应位,得到的数字将有一个on位,其中两个输入位中的任何一个为on。在您给我们的示例中,运算符用于向位字段添加标志

例如,如果你有一个数字标志,比如说是4,它看起来像

00000100b
二进制的。如果您使用00010000B16号输入,则结果为

00010100b,

它包含位位置3处的原始标志和位位置5处的新标志。

投票关闭,因为它是重复的。对不起,伙计们,我没有意识到这是一个按位异或运算符,像这样使用它对我来说似乎很奇怪,但谢谢你们给我的回答。但为什么必须进行位包含以最大化JFrame?我只使用JFrame.MAXIMIZED_测试了这个方法,它最大化了我的JFrame.f.getExtendedState返回该帧的当前状态,因此按位操作可以在不中断现有状态的情况下最大化该帧。仅使用JFrame.MAXIMIZED_都将重置位字段中的任何其他属性。