1-
pero porque entre parentesis la siguiente linea: (posicion + 1 < arreglo.length ? ";" : "") y para que sirve el signo ? y las comillas y los ; y :
se le llama operador ternario en esa linea te dice que si la posicion+1 < arreglo.length si es verdadero entonces a la cadena se le coloca un ";" en caso contrario se le coloca un ":"
2-
Luego tampoco entiendo para que sirve: strAños = años.split(";");
quiere decir que si tienes
String strAños
[]= años.
spli(";");
optendrias un array con los valores 1990 1991.
Saludos!