//测试自动转型和强制转型(指的表述范围)
public class TestCast{
public static void main(String args[]){
byte b = 123;
//byte b2 = 300;
//char c = -3;
char c2 = 'a';
int i = c2;
System.out.println(i);
//long可以转换为float
long d01 = 123321;
float f1 = d01;
System.out.println(f1);
//测试强制类型转换
int i1 = 100;
char c3 = (char)i1;
System.out.println(c3);
/*
int i2 = -100;
char c4 = (char)i2;
System.out.println(c4); -100超过了char的表述范围,会得到一个毫无意义的值。
*/
//类型提升问题
int a1 = 1;
long a2 = 2;
int a3 = (int)(a1+a2);//做所有的二元运算符(+-*/%)的时候都会有类型提升问题。
//例题1、盖茨一年赚10亿,10年赚多少
int money = 100000000;
int years = 10;
long total = (long)money*years;//先转型在赋值,(long)(money*years)是错误的
//例题2、一个人70年心跳多少次
long times = 70L*365*24*60*60;//先转型在赋值,默认为int,超出表述范围了,先转换为long类型
System.out.println(times);
}
}
自动类型、强制类型转换、及类型提升问题
最新推荐文章于 2024-09-03 18:00:00 发布