相关疑难解决方法(0)

并发代码中赋值运算符的返回值

鉴于以下课程:

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以外的任何内容?

java concurrency variable-assignment jls

34
推荐指数
3
解决办法
1万
查看次数

Java - 操作顺序 - 在单行中使用两个赋值运算符

在一行中使用两个赋值运算符时的操作顺序是什么?

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]' 它是否只是为数组做那个?

java arrays operations operators variable-assignment

13
推荐指数
2
解决办法
3166
查看次数

Java两个等号在一个声明中?

有人可以帮我理解下面代码的作用以及两个等号的行是什么吗?在这个构造函数中,某些等于某事的东西是如何工作的?

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

java linked-list

5
推荐指数
3
解决办法
2679
查看次数