[Problema] Ordenar array por ordem crescente

Eu tenho uma lição de casa para fazer, e eu realmente tentei fazer, porém está me dando um erro e não sei do que possa ser.

for (int i = 0; i < lista.length; i++) {
    for (int j = 0; i < lista.length - 1; j++) {
        if (lista[j] > lista[j + 1]) {
             safe = lista[j];
             lista[j] = lista[j + 1];
             lista[j +1] = safe;
        }
    }
}
for (int k = 0; k < lista.length; k++) {
        System.out.print(lista[k] + ", ");
}        

Erro que apresenta:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at tpc.Tpc.main(Tpc.java:17)

Codigo que não ficou formatado.

       public static void main(String[] args) {
    int[] lista = {4, 3, 2, 1};
    int safe;

    for (int i = 0; i < lista.length; i++) {
        for (int j = 0; i < lista.length - 1; j++) {
            if (lista[j] > lista[j + 1]) {
                safe = lista[j];
                lista[j] = lista[j + 1];
                lista[j +1] = safe;
                
            }
        }
    }
    for (int k = 0; k < lista.length; k++) {
        System.out.print(lista[k] + ", ");
    }
    
}

}

mostre o array?

Não entendi a sua pergunta.

Fiz uns ajustes no seu código e acho que resolvi o problema, compara o código abaixo com o seu e vê se entende as mudanças:

public static void main(String[] args) {
  int[] lista = {4, 3, 2, 1};
  int safe;

  for (int i = 0; i < lista.length; i++) {
    for (int j = i + 1; j < lista.length; j++) {
      if (lista[i] > lista[j]) {
        safe = lista[j];
        lista[j] = lista[i];
        lista[i] = safe;
      }
    }
  }

  System.out.println(Arrays.toString(lista));
}

Eu adaptei dessa resposta aqui: https://stackoverflow.com/a/26533452/3334365