Type Casting
Type casting is when you assign a value of one primitive data type to another type.
In Java, there are two types of casting:
Widening Casting (automatically)
Narrowing Casting (manually)
Widening Casting Implicit Casting
Widening Casting is done automatically / implicitly, Converts a smaller data type to a larger data type. No risk of data loss.
byte -> short -> char -> int -> long -> float -> double
Example
public class Main
{
public static void main (String[] args)
{
int myInt = 9;
double myDouble = myInt;// Automatic casting: int to double
System.out.println(myInt);// Outputs 9
System.out.println(myDouble);// Outputs 9.0
}
}
Narrowing Casting Explicit Casting
Narrowing Casting must be done manually / explicitly by placing the type in parentheses in front of the value, converting a larger type to a smaller size type
double -> float -> long -> int -> char -> short -> byte
Example
public class Main
{
public static void main (String[] args)
{
double myDouble = 9.78d;
int myInt = (int) myDouble;// Manual casting: double to int
System.out.println(myDouble);// Outputs 9.78
System.out.println(myInt);// Outputs 9
}
}