升级和类型转换 赋值和表达式可能引起计算的数据类型与 保存结果的存储位置之间的不匹配 右边的数据类型小于左边的数据类型: byte num1=53 byte num2=47 long num num=num 1 num2 右边的数据类型大于左边的数据类型 nt num1=53 int num2=47 byte num num=num 1 +num2 右边的数据类型和数据大于左边的数据类型: int num1=53: int num2=47 byte num num=num1*num2
升级和类型转换 • 赋值和表达式可能引起计算的数据类型与 保存结果的存储位置之间的不匹配。 ➢ 右边的数据类型小于左边的数据类型: byte num1=53; byte num2=47; long num3; num3=num1*num2; ➢ 右边的数据类型大于左边的数据类型: int num1=53; int num2=47; byte num3; num3=num1+num2; ➢ 右边的数据类型和数据大于左边的数据类型: int num1=53; int num2=47; byte num3; num3=num1*num2;
注意: Java是强类型语言,因此,在进行赋值操作时要对类型进行检查; 、当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式 类型转换(升级); 当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显 式的强制类型转换; 其一般形式为 (类型名)(表达式
注意: ✓ Java是强类型语言,因此,在进行赋值操作时要对类型进行检查; ✓ 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式 类型转换(升级); ✓ 当将占位数多的类型赋值给占位数少的类型时,需要由用户使用显 式的强制类型转换; 其一般形式为: (类型名)(表达式)
类型转换 短类型→长类型:自动升级 ·长类型→短类型:强制转换
类型转换 • 短类型 →长类型 :自动升级 • 长类型 →短类型 :强制转换
自动升级规则 1.(byte或 short op int→丶int 2(byte或 short或int) op long→long 3(byte或 short或int或long) op float→foat 4.(byte或 short或int或long或 float) op double→ double 5. char op int→int 其中,箭头左边表示参与运算的数据类型 √op为运算符(如加、减、乘等) 右边表示运算结果的数据类型。 如:3+4.5,因为45是 float型,所以3先被转换为 float型,然 后再于45相加,其结果也为 float型
自动升级规则 1. (byte或 short) op int → int 2. (byte或 short或 int) op long → long 3. (byte或 short或 int或 long) op float → float 4. (byte或 short或 int或 long或 float) op double → double 5. char op int → int 其中,箭头左边表示参与运算的数据类型 op为运算符(如加、减、乘等) 右边表示运算结果的数据类型。 如:3+4.5,因为4.5是float型,所以3先被转换为float型,然 后再于4.5相加,其结果也为float型
例:自动升级实例 public class Promotion public static void main( String args[]) byte b=10 char c=a, i=90 float f= 3.5f double d=1.234 float f1=f* b 11=C+i; double d1 d1=f1/i一d; 查看结果: Test java 、查看结果: Promotion. java
例: 自动升级实例 public class Promotion { public static void main( String args[ ] ) { byte b = 10; char c = 'a'; int i = 90; float f = 3.5f; double d = 1.234; float f1; f1 = f * b; int i1; i1 = c+i; double d1; d1 = f1 / i1 – d; } } 查看结果:Test.java 查看结果:Promotion.java