本文共 514 字,大约阅读时间需要 1 分钟。
起因是看到这样一段代码
queued = UNSAFE.compareAndSwapObject(this, waitersOffset, q.next = waiters, q);
这里第三个参数类型也是Object类型
但是输入是q.next = waiters;
这个怎么解释呢?这个其实分为两步来看、第一步将waiters 赋值给q.next; 第二步是把q.next的值作为参数传递给这个函数。
自己写的一个测试
package Test;public class Test1 { public static void main(String[] args) { int i = 6; s(i = 7); System.out.println(i); } public static void s (int i) { System.out.println(i); }}
结果均输出7, 表明是先把参数传给i, 再把i 传给函数调用的。
转载地址:http://enzji.baihongyu.com/