Why does changing directly a value in an parameter array becomes pass-by-reference but if I try to just pass the reference to the array it isn't pass-by-reference?
What is the most effective way to force it to be "pass-by-reference" in array = arrayII;, if there is one?
public static void main(String[] args) {
    // TODO code application logic here
    String [] array = {"Default1","Default2"};
    System.out.println("Start: " +" "+ array[0] + array[1]);
    test(array,false);
    System.out.println("false: " +" "+ array[0] + array[1]);
    test(array,true);
    System.out.println("true:  " +" "+ array[0] + array[1]);        
}
static void test(String[] array, boolean change){
    String [] arrayII = {"Changed1","Changed2"};    
    if (change){
        array[0] = "Changed1";
        array[1] = "Changed2";
    }
    else {
        array = arrayII;
    }
}
run:
Start:  Default1Default2
false:  Default1Default2
true:   Changed1Changed2
BUILD SUCCESSFUL (total time: 0 seconds)
 
     
     
     
     
     
    