一些隐式转化的示例
小转大默认转换 大转小需要强转转化 转换 的目的是赋值
//整形 默认 int 浮点型 默认 double 只有同类型数据才可以相加 结果是同类型数据 //1.自动类型转化 小转大 与强转 short s =1; short s2 =2; // 常量优化 1+2 都是确定的量 累计和不超取值范围 可以不用强制转化 short s3=1+2; // short + int 自动提升为 int+int 需要强制转化 short s5 = s+13;// 正确写法 short s5 =(short)(s+13);或者int s5 =(short)(s+13) // s s2都是变量 不确定取值是多少 需要自己强制换 其中 s s2都自动提升为了 int // 该方式令人匪夷所思 short+short 提升为了 int +int 我的定义short有何意义 //所有 取值小于int 且被定义为变量后的 算数运算 都会被提升为int 然后进行运算 short s4=s+s2;// 正确写法 short s4=(short)(s+s2);或者int s4=(short)(s+s2) int n=2; int n1 =11+10; int n2 = n+n1; // int+long 提升为long int n3 = 12+120L; // 强转int 或者 long 接受 // int+float 提升为float int n4 = 12+120F; // 强转int 或者 float 接受 //定义long float 可以不加后缀 long g1 = 123; long g2 = 124L; float f1 = 123; float f2 = 124F; //int + double 提升为double double d = n+12.0; //2.自动类型转化 大转小 int m =0; m+=12.5; //m=(int)(m+12.5)

浙公网安备 33010602011771号