Los objetos en Java se pasan por valor de referencia. Por lo tanto, si pasa un objeto, obtiene una copia de la referencia (si asigna esa referencia a otra cosa, solo se modifica el parámetro, el objeto original aún existe y el programa principal lo menciona).
This link demonstrates a bit about passing by value of reference.
public void badSwap(Integer var1, Integer var2)
{
Integer temp = var1;
var1 = var2;
var2 = temp;
}
Esos son referencias a objetos, pero no se cambiará, ya que son sólo las referencias internas en el ámbito de la función. Sin embargo, si usted hace esto:
var1.doubleValue();
Se utilizará la referencia al objeto original.
Además, el jdk viene con las fuentes, por lo que puede echarle un vistazo si desea obtener más información al respecto. – Puce
Solo para ampliar las respuestas: esto solo funciona porque sort no cambia el tamaño de la matriz. Si quisiera hacer eso, tendría que asignar una nueva matriz y no podría simplemente modificar la matriz existente. – biziclop