Salve a tutti, complimenti per l'interessantissimo forum!
vorrei sottoporvi un semplice quesito che mi è venuto in mente mentre muovo i miei primi passi in java^^
dunque ecco 2 semplici metodi ed un piccolo main
import java.util.*;
public class Prova {
static int i1 () {
int z=0;
i2(z);
return z;
}
static void i2(int z) {
++z;
}
static List<Integer> l1 () {
List<Integer> list = new ArrayList<Integer>();
l2(list);
return list;
}
static void l2(List<Integer> list) {
list.add(1);
}
public static void main(String[] args) {
System.out.println(i1()); //stampa 0 (variabile z non aggiornata)
System.out.println(l1()); //stampa 1 (lista aggiornata)
}
}
Vorrei sapere come mai nel primo metodo la variabile z nn viene aggiornata dal metodo ausiliario, mentre invece nel secondo metodo (l1) la lista viene aggiornata dal metodo ausiliario.
Grazie mille in aticipo per qualsiasi chiarimento!