Olá Gabriel! Veja bem a diferença está quanto a leitura da variável.
Em ++i
primeiro é adicionado 1 à variavel para depois se ler o valor desta. Já em i++
primeiro é lido o valor da variável para depois incrementar 1 a esta.
Se você fizer:
int i = 1;
System.out.println(++i);
System.out.println(i++);
System.out.println(i);
Verá que sairá no console o resultado:
2
2
3
Por que? Veja bem, a variável i tem valor inicial 1. Quando ela chega no primeiro System.out.println()
eu incrementei 1 antes de ler a variável para imprimir, assim foi impresso 2. No entanto, no segundo System.out.println()
eu li primeiro a variável para depois incrementar 1 a ela, então foi impresso 2 pois ela foi lida primeiro. Já no terceiro System.out.println()
eu imprimir o valor da variável, veja que foi 3 pois ela foi incrementada após ter sido lida no segundo System.out.println()
Bem, espero ter ajudado! Bons Estudos!