Diferencia entre int y entero

¿Cuál es la diferencia entre int y Integer ? Sí, uno es primitive y otro wrapper , ¿cuál es la situación para usarlos correctamente?

También cual es la diferencia entre:

 int i=0; ++i and i++