Order of execution of parameters guarantees in Java?

java, jls, operator-precedence, specifications

Solution

From the Java Language Specification (on Expressions):

15.7.4 Argument Lists are Evaluated Left-to-Right

In a method or constructor invocation or class instance creation expression, argument expressions may appear within the parentheses, separated by commas. Each argument expression appears to be fully evaluated before any part of any argument expression to its right.

Problem

Given the following function call in `C`: ``` fooFunc( barFunc(), bazFunc() ); ``` The order of execution of `barFunc` and `BazFunc` is not specified, so `barFunc()` may be called before `bazFunc()` or `bazFunc()` before `barFunc()` in `C`. Does `Java` specify an order of execution of function argument expressions or like `C` is that unspecified?

Original source

Related problems