Primitive vs Object type in Java [duplicate]

2019-01-26 09:30发布

问题:

This question already has an answer here:

  • Why do people still use primitive types in Java? 19 answers

This question came to my mind because I have read somewhere that Java is not a pure Object oriented language since it is using primitives (which are not objects). I can agree with that. Now my problem is why we are using primitives/wrappers while we already have Object in same type?

As an example if we consider Integer, It has same value limit as int other than object behavior. why still Java use primitives under these condition?

As my opinion, if Java only use Object type Autoboxing and Unboxing no need. Also there is no primitive for String by the way.

回答1:

One reason is due to memory usage. Primitives, such as int, float etc. require less memory allocations (I think 4 bytes) in comparison to Objects which are at the very least 8 bytes. Please see the following reference:

In addition, a lot of arithmetic (numeric) is completed with the use of primitives rather than their Object equivalents and this is another reason why they are quite critical in the Java language.