I tried to deep copy an array using arrays.clone() method.
import java.util.*;
public class Main
{
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
m1(arr);
System.out.println("arr inside main: " + Arrays.toString(arr));
}
private static void m1(int[] arr) {
int[] narr = {5,6,7,8,9};
arr = narr.clone();
System.out.println("arr inside m1: " + Arrays.toString(arr));
}
}
Output:
arr inside m1: [5, 6, 7, 8, 9]
arr inside main: [1, 2, 3, 4, 5]
As it seen the original array inside the m1()
function is changed, and since arrays are passed by reference, I thought the original array in the main()
function should also have changed.
But it is not.
I think I am lacking some java knowledge.
Please put some light.