It seems that the link I have just provided forget to mention a noticeable point : basic types can't be used in association with Java Collections (ArrayList, Vector ...) whereas wrapper classes can. For example, you may declare a HashMap of 'Integer' but not a HashMmap of 'int' (as the Java collections work only on objects)
Primitive values should typically be preferred when doing extensive calculations. As mentioned, wrapper classes are helpful when you need to store primitives in a Collection. Since you cannot do this directly, the wrapper classes are necessary.