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
    }
}