Java Automatic Type Conversion and Casting
In this chapter you will learn:
- What is data type casting and converting
- What are the conditions for Java's Automatic Conversions
- How Java compiler deals with the automatic type conversion and larger type size
Data type casting
If the two types are compatible, then Java will perform the conversion automatically. For example, assign an int value to a long variable. Since long type is larger than int type. A long type variable has enough space to hold an int value.
For incompatible types we must use a cast. Casting is an explicit conversion between incompatible types.
Java's Automatic Conversions
An automatic type conversion will be used if the following two conditions are met:
- The two types are compatible.
- The destination type is larger than the source type.
int
type is always large enough to hold all valid byte
values,
so an automatic type conversion takes place.
public class Main {
public static void main(String[] argv) {
byte b = 10;/*from ja v a 2 s .c o m*/
int i = 0;
i = b;
System.out.println("b is " + b);
System.out.println("i is " + i);
}
}
The output:
For widening conversions, integer and floating-point types are compatible with each other.
public class Main {
public static void main(String[] argv) {
int i = 1234;
float f;/*from ja va 2s .c o m*/
f = i;
System.out.println("i is " + i);
System.out.println("f is " + f);
}
}
The output:
Automatic type conversion and type size
Java performs an automatic type conversion
when storing a literal integer
constant into variables of type byte
, short
, or long
.
public class Main {
public static void main(String[] argv) {
byte b = 1;
}
}
But you cannot store a value out of the byte scope
public class Main{
public static void main(String[] argv){
byte b = 11111;
}
}
When compiling, it generates the following error message:
Next chapter...
What you will learn in the next chapter: