John Stuart wrote:
Why is the value of original array got modified too if Java use pass-by-value?
Because it is not a deep copy of the value. Only the reference (parameter) is copied. If you change the mutable object that the reference in pointing to. Or in this case, change the elements of the array, those changes will have an effect.
And maybe this example could help you to see, that Java indeed uses pass by value, as original object not getting modified. Read the link Henry gave it to you, and compare with the code below.
mercedes max speed: 220
mercedesUpgrade max speed: 270