Explicit type casting means forcing a smaller datatype variable to store a larger datatype value, overriding the default JAVA type casting rules. I'll explain this with an example:
int a=2;
double b=a; /*this does not throw any errors as 'double' is larger datatype than 'int' */
a=b; /* this throws an error because 'int' can't store a value of 'double' type since 'int' is smaller */
a=(int)b; /* this doesn't throw any errors and this is an example of explicit type-casting */
You can refer to this table for looking up JAVA datatype sizes: (source: w3schools)
Data Type | Size | Description |
---|
byte | 1 byte | Stores whole numbers from -128 to 127 |
short | 2 bytes | Stores whole numbers from -32,768 to 32,767 |
int | 4 bytes | Stores whole numbers from -2,147,483,648 to 2,147,483,647 |
long | 8 bytes | Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
float | 4 bytes | Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits |
double | 8 bytes | Stores fractional numbers. Sufficient for storing 15 decimal digits |
boolean | 1 bit | Stores true or false values |
char | 2 bytes | Stores a single character/letter or ASCII values |