在java中的强制转换和自动转换中,什么是目标类型,什么是源类型?

什么是目标类型,什么是源类型?...
2026年09月21日 21:13
有2个网友回答
网友(1):

目标类型是转换后的类型,源类型是转换前的类型
比如:
int a = 1;

double b = a; 这里是自动转换,因为double 有8个字节的长度 而int只有4个字节的长度,所以可以int可以自动转换成double ,就相当于int是一杯水,而double 是一个桶,一碗水当然可以倒入到桶里面,这里a是源类型 b是目标类型。

而:
double a = 1.0;

int b = (int) a; 这里是强制类型转换,因为不可能把一桶水塞进一个杯子里面,所以要强制类型转换。这里a是源类型 b是目标类型。

一些简单的例子:
float = 1.0; 编译错误,因为1.0是double类型的,所以要强制类型转换

short s = 1;

s = s + 1; 编译错误,因为short只有2个字节,而加上的1是int类型的4个字节,所以要强制类型转换

s = s++; 可以,自加1

网友(2):

这位童鞋,请看下面的例子:

  int a = 5;

  double b = a;

  int c = (int)b;

在上述代码中,第一步就是声明一个变量a,且将5赋给它;

第二步,定义一个double类型的变量b,且将a的值赋给它,此时完成了自动类型转化,a是源类型,b是目标类型。

第三步,定义了一个int类型变量c,且将b的值赋给它,此时完成了强制类型转化,b是源类型,c是目标类型。

 

可以这样总结,源类型在“=”的右边,而目标类型在“=”的左边。