代码如下:
package ClassDemo;
public class TypeConvertionDemo {
public static void main (String[] args) {
//当一个较"小"数据与一个较"大"的数据一起运算时,系统将自动将"小"数据转换成"大"数据,再进行运算。
System.out.println(1.0/2);
// 而在方法调用时,实际参数较"小",
// 而被调用的方法的形式参数数据又较"大"时(若有匹配的,当然会直接调用匹配的方法),
// 系统也将自动将"小"数据转换成"大"数据,再进行方法的调用
System.out.println(max(2,3));
// 下面的语句可以在Java中直接通过:
byte b = 0;
int i = b;
long l = b;
float f = b;
double d = b;
// 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码
char c ='c';
int charTestVar = c;
System.out.println(c + "对应ASCII码是" + charTestVar);
// 对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short shortTestVar = 99;
char shortToCharTestVar = (char) shortTestVar;
System.out.println("输出:" + shortToCharTestVar);//输出:output:c;
// 表达式的数据类型自动提升, 关于类型的自动提升,注意下面的规则。
// 所有的byte,short,char型的值将被提升为int型
short shortTestVar02 = 12;
int intTestVar02 = 12;
System.out.println(shortTestVar02 + intTestVar02);
//包装类向过度类型的转换
Double d1 = new Double(2.0);
double d2 = d1.doubleValue();
Double d3 = Double.valueOf(d2);
System.out.println(" d1 is Double?: " + (d1 instanceof Double));
System.out.println(" d3 is Double?: " + (d3 instanceof Double));
}
private static double max(double num1, double num2) {
return num1 > num2 ? num1 : num2;
}
}