鉴于以下课程:
class?Foo?{
public?volatile?int?number;
public?int?method1()?{
int?ret?=?number?=?1;
return?ret;
}
public?int?method2()?{
int?ret?=?number?=?2;
return?ret;
}
}
Run Code Online (Sandbox Code Playgroud)
并且在同一个实例上调用多个线程method1()并method2()同时执行Foo,对method1()的调用是否可以返回除1以外的任何内容?
在一行中使用两个赋值运算符时的操作顺序是什么?
public static void main(String[] args){
int i = 0;
int[] a = {3, 6};
a[i] = i = 9; // this line in particular
System.out.println(i + " " + a[0] + " " + a[1]);
}
Run Code Online (Sandbox Code Playgroud)
编辑:感谢您的帖子.我得到了=从右边获取值,但是当我编译它时,我得到:
9 9 6
Run Code Online (Sandbox Code Playgroud)
我认为它本来是和ArrayOutOfBounds异常,但它在它移动到9 之前分配'a [i]' 它是否只是为数组做那个?
有人可以帮我理解下面代码的作用以及两个等号的行是什么吗?在这个构造函数中,某些等于某事的东西是如何工作的?
public More ...LinkedList() {
header.next = header.previous = header;
}
Run Code Online (Sandbox Code Playgroud)
这是我看到这个网站的链接,我想弄清楚:http: //grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java /util/LinkedList.java#LinkedList.0header