What is the main difference between primitive type and wrapper class?

java, object, primitive-types, wrapper

Solution

None.

That's the exact same thing. In the first case you just have a supplementary variable.

Note that with autoboxing you rarely need to have both an `int` and an `Integer` variables. So for most cases this would be enough :

int pInt = 500;

The main case where the Integer would be useful is to distinguish the case where the variable is not known (ie `null`) :

Integer i = null; // possible
int i = null; // not possible because only Object variables can be null

But don't keep two variables, one is enough.

Problem

What is the difference between these two lines? ``` int pInt = 500; ``` and ``` Integer wInt = new Integer(pInt); ``` Or ``` Integer wInt = new Integer(500); ```

Original source

Related problems