/*
1、小容量可以直接赋值给大容量,称为自动类型转换。
2、大容量不能直接赋值给小容量,需要使用强制类型转换符进行强转。
但需要注意的是:加强制类型转换符之后,虽然编译通过了,但是运行
的时候可能会损失精度。
*/
public class 强制类型转换{
public static void main(String[] args){
// 不存在类型转换
// 100L是long类型字面量,x是long类型字面量。
long x = 100L;
// x是long类型,占用8个字节,而y变量是int类型,占4个字节。
// 在java语言中,大容量可以直接赋值给小容量吗?
// 编译错误信息:错误:不兼容的类型:从long转换到int可能会有损失。
// int y = x;
// 大容量转换成小容量,要想编译通过,必须加强制类型转换符,进行强制类型转换。
// 底层是怎么进行强制类型转换的呢?
// long类型:000000000 000000000 000000000 000000000 000000000 000000000 000000000 01100100
// 以上的long类型100L强转为int类型:会自动将"前面的"4个字节砍掉。:000000000 000000000 000000000 01100100
int y = (int)x; // 这个(int)就是强制类型转换符,进行强制类型转换。
// 但是要记住:编译虽然过了,但是运行可能会损失精度。
System.out.println(y); //
//定义变量a int类型,赋值100
int a = 100;
System.out.println(a);
int b = a; // 将变量a中保存的值100复制一份给b变量。
System.out.println(b);
}
}