我想交换两个int
秒- x
而y
在此例,并做到在一个没有线的库函数。
所以我从这里开始:
int x = 4;
int y = 3;
System.out.println(x);
System.out.println(y);
x ^= y;
System.out.println(x);
System.out.println(y);
y ^= x;
System.out.println(x);
System.out.println(y);
x ^= y;
System.out.println(x);
System.out.println(y);
输出是4, 3, 7, 3, 7, 4, 3, 4
预期的。到目前为止一切都很好。
接下来是:
int x = 4;
int y = 3;
System.out.println(x);
System.out.println(y);
y ^= (x ^= y);
System.out.println(x);
System.out.println(y);
x ^= y;
System.out.println(x);
System.out.println(y);
输出4, 3, 7, 4, 3, 4
再次符合预期。到目前为止还不错。
然后最后这个:
int x = 4;
int y = 3;
System.out.println(x);
System.out.println(y);
x ^= (y ^= (x ^= y));
System.out.println(x);
System.out.println(y);
在此阶段,输出变为4, 3, 0, 4
。现在我知道这0
是4 ^ 4
由于x
当时未完成分配而导致的-为什么会发生这种情况?为什么不x ^= y
实际分配7
给x
变量,以使其成为7 ^ 4
最后一次分配?
让我们尝试扩展您的最后一个表达式。
评估为
x = x^(y = y^ (x = x^y));
需要注意的是表达式从评估 左 到 右 ,
它成为了,
x = 4 ^ (y = 3 ^ (x = 4 ^ 3));
现在,问题已变得显而易见。对?
为了消除混乱,让我尝试通过从左到右的评估来解释我的意思。
int i = 1;
s = i + (i = 2) + i;
现在,该表达式的计算结果为
s = 1 + 2 + 2;
请注意,赋值i
的 左边 是1
,但是赋值的 右边
(和赋值上)被评估为2
,因为评估是从左到右,当涉及表达式的第二部分和第三部分时,i
s的值为2
。
所以我有一个打开活动的通知: 我制作的活动是一个简单的对话框样式的活动。当我从通知抽屉中打开活动时,在任何其他应用程序上,如facebook、whatsapp、chrome浏览器等,活动就会按预期打开。问题是当我试图关闭它,并回到以前的应用程序。 单击对话框中创建的“关闭”按钮时: 同样的事情发生了:活动结束了,但我要回到主屏幕,而不是上一个应用程序。为什么?? *注意:以前的应用程序仍然在后台工
问题内容: 我试图选择一个名为的类中的第一个。如果它是其中的第一个元素,它会起作用,但是如果在它之后出现,它将不起作用。 我的印象是,无论它在哪里,我拥有的CSS都会选择第一个。我该如何运作? 问题答案: 该选择装置 当且仅当它是一个元素时,才选择其父项的第一个孩子。 所述容器的这里是,这样不能满足。 您的情况有CSS3 : 但是由于浏览器兼容性问题而已,那么最好还是给第一个类一个类,然后再定位该
我试图重写并为页脚返回不同的视图类型,但在函数中进行整数比较失败: 此图像显示了一个调试会话,其中输入为21,私有列表的大小为21,但是当我按下“step over”时,会跳过条件代码。 如果两个整数相等,为什么返回false? 我在运行之前清理并重建了我的项目。 更新: 当整数被硬编码时,它可以工作: 这是完整的适配器:https://gist.github.com/fergusom/79C6D
我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它
当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。
我试图使用来传输我根据前面的问题设置的自定义标头。 我在文件中读到... 我的属性包括: