Type Casting
Assigning a value of one type to a variable of another type is known as Type Casting.
Example :
int x = 10; byte y = (byte)x;
In Java, type casting is classified into two types,
- Widening Casting(Implicit)
- Narrowing Casting(Explicitly done)
Widening or Automatic type converion
Automatic Type casting take place when,
- the two types are compatible
- the target type is larger than the source type
Example :
public class Test { public static void main(String[] args) { int i = 100; long l = i; //no explicit type casting required float f = l; //no explicit type casting required System.out.println("Int value "+i); System.out.println("Long value "+l); System.out.println("Float value "+f); } }
Output :
Int value 100 Long value 100 Float value 100.0
Narrowing or Explicit type conversion
When you are assigning a larger type value to a variable of smaller type, then you need to perform explicit type casting.
Example :
public class Test { public static void main(String[] args) { double d = 100.04; long l = (long)d; //explicit type casting required int i = (int)l; //explicit type casting required System.out.println("Double value "+d); System.out.println("Long value "+l); System.out.println("Int value "+i); } }
Output :
Double value 100.04 Long value 100 Int value 100