salve, da quel che ricordo in java non esiste il concetto di puntatore, anche se due variabili possono riferirsi allo stesso oggetto.
esempio:
codice:
 int a[]=new int[10];
int b[]=a;
così a e b si riferiscono allo stesso array e quindi operando su b[] opero anche su a[], giusto?

ora il tema del thread:
io so che in java esiste solo lo "scambio per valore", ossia al metodo è possibile passare il valore di una variabile/oggetto, non il riferimento.
avendo quindi un metodo che vuole restituire il primo elemento dell'array e impostarlo a 0:
codice:
public int returnFirst(int[] array){
int tmp=array[0];
array[0]=0;
return tmp;
}
dopo l'esecuzione di questo metodo il primo elemento dell'array nella funzione main chiamante è stato modificato dal metodo o no?