I have written a java recursive method and the code is working as expected. But I'm not sure how same method is behaving differently for int and char[] . I'm invoking method1 from main method.
Code 1
void helperMethod(char[] a)
{
    a[0]= 'x';
}
void method1()
{
    char a[] = {'a','b','c'};
    helperMethod(a);
    System.out.println(a[0]);
    System.out.println(a[1]);
    System.out.println(a[2]);
}
Output -
x
b
c
Code 2 -
void helperMethod(int a)
{
    a=3;
}
void method1()
{
    int a =10;
    helperMethod(a);
    System.out.println(a);
}
Output -
10
Why char[] was updated while integer not updated by the helper Method? Is it because I'm passing reference to same object in case of char[] and a copy of object in case of int?
