java /= 运算符中的操作优先级

Priority of operations in java /= operator

我在java中有以下代码,我明白/=的目的是什么。 我的问题是为什么代码在除法之前先执行 4-1。

int a = 20;
a /= 4-1;

如果我写出a = a/4-1;我得到4,上面的代码给出6。

因为Java中的赋值运算符“=”优先。让我们重写它以使其清楚:

int a = 20;
a /= 4-1; 

可能是:

int a = 20;
a     = a / (4-1); 

这不同于:

int a = 20;
a     = (a / 4) -1; 

如果你这么认为,“+=”也一样:

int a = 20;
a     += 3*2; 

这里首先是:

int a = 20;
a     = a + 3*2; 

而不是:

int a = 20;
a     += (a + 3) *2;