Question:
What is the difference between the types’float’ and ‘Float’ in Java?
Answer:
A variable of type float
contains an IEEE single precision number,while a variable of type Float
contains a pointer to an objectencapsulating an IEEE single precision number.
The class Float
is called an object wrapper of the typefloat
.The designers of Java found it convenient to introduce objectwrappers for all the primitive types:int:Integer
,boolean:Boolean
, etc.
This is convenient for representing heterogeneous collectionsof primitive values. For example, it’s easy to create an arraycontaining an odd assortment of objects since all objectscan be implicitly cast to the class Object
.
On the other hand, there is no “most general type” to which allprimitive values can be promoted. (Every primitive value can bepromoted to a double except booleans.)Object[] things; // holds instances of Bike, Shoe, Gum,etc.
However, things can hold instances ofdouble[] items; //holds numbers, chars, but not booleans
Boolean
,Char
, and Number
.