Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Primitive vs Object type in Java [duplicate]

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.

like image 626
Ruchira Gayan Ranaweera Avatar asked Aug 20 '13 11:08

Ruchira Gayan Ranaweera


1 Answers

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.

like image 146
blackpanther Avatar answered Sep 28 '22 08:09

blackpanther