表达式的执行优先级

Ete*_*ght 0 java

在以下代码行中:

x = x.times(x).plus(y);
Run Code Online (Sandbox Code Playgroud)

这些表达式将按什么顺序执行?

会是这样的:

x = (x + y)*x
Run Code Online (Sandbox Code Playgroud)

x = (x^2) + y,或其他什么,为什么?

有关特定主题的文档链接将受到高度赞赏,因为我的搜索没有运气.显然我不知道在哪里寻找和寻找什么.

谢谢.

Oli*_*rth 7

这些是方法; 事实上,他们被称为"加"和"时代"并不意味着他们必然会遵循内置+*运营商的行为.

所以x.times(x)将首先执行.这将返回对象的引用,plus(y)然后将在该对象上执行.然后将分配给它的返回值x.它相当于:

tmp = x.times(x);
x = tmp.plus(y);
Run Code Online (Sandbox Code Playgroud)