Salve a tutti, ad un'occhiata veloce, il seguente pezzo di codice dovrebbe dare in output 1... invece da 0.

codice:
public class ProblemaIncremento {   	
      public static void main(String[] args) { 

 		int i=0; 		
                i = i++; 		
                System.out.println(i);  	
       }  
}
La mia ipotesi è che l'incremento utilizzi una variabile temporanea che non si trova aggiornata in tempo per l'assegnazione ad i... ma non ne ho la certezza!
Qualcuno di voi mi riesce a spiegare perchè succede questa cosa?

Grazie in anticipo