Why is variable being modified from a method? : <h2>Background</h2>

<p>I am making an array tools class for adding Python functionality to a Java array, and I came across this problem. This is obviously a simplified, more universal version.</p>

<h2>Question</h2>

<p>In this example:</p>

<pre><code>public class ArrayTest
{

    public static void main(String[] args)
    {
        // initial setup
        int[] given = {1, 2, 3, 4, 5};

        // change array
        int[] changed = adjust(given);

        // these end up being the same...
        System.out.println(Arrays.toString(changed));
        System.out.println(Arrays.toString(given));
    }
    private static int[] adjust(int[] a)
    {
        for (int i = 0; i &lt; a.length; i++)
        {
            a[i]++;
        }
        return a;
    }

}
</code></pre>

<p>...why is <code>changed</code> and <code>given</code> the same thing?</p>

<h2>Disclaimer</h2>

<p>I am guessing that this has been asked before, but I couldn't find an answer, so I apologize for that.</p>
