The Java is a statically typized language, so all variables must be declared before use.
Referenced types are e.g. String s = "Java"; where s is an object of String class.
Primitive types are e.g. int n = 2; where n will contain a value only.
Float:
1x float register on 32-bit systems, half float register on 64-bit systems,
1st bit: sign
2nd-9th bit: exponent
10th-32nd bit: fraction (mantisse)
-> 7-8 decimal digits (e.g. from 0.12345*10^3 the 12345 part means 5 decimal digits) for safe use
Double:
2x float register on 32-bit systems, 1x float register on 64-bit system,
1st bit: sign
2nd-12th bit: exponent
13th-64th bit: fraction (mantisse)
-> 15-16 digits for safe use
Char:
char c = 'A' (value giving)
char c = 65 (same result)
The default values are set by the constructor of the corresponding wrapper class.
The String is a wrapper class, declaring a String results "" as a default value set by its constructor.
Hexadecimal numbers are not primitive types but series of characters (for a byte, 2 characters) therefore can be stored in String wrapper object.