为什么我们s不像short s = 2s;我们用float写的那样用短数据类型写float f = 1.23f?
我知道当我们float默认编写时,编译器会将其视为double并为其分配8个临时字节,当它尝试将该8字节复制到float4时会导致类型错误,这就是我们f在初始化之后编写的原因float,但是为什么我们不做short默认的类似的东西int是文字类型?
Java语言规范允许长字面量的类型后缀为L或l。但是,它没有为短值提供类型后缀。没必要,因为:
int。如果变量的类型为byte,short或char,并且常量表达式的值可表示为变量的类型,则可以使用缩窄的原始转换。
这是因为从 double 到 float 会截断值并丢失数据,因此编译器不会自动执行此操作,您必须明确告诉它。但是,当从较小的大小(short)转换为较大的大小(int)时,它是自动完成的,因为编译器只需填充数据并且不存在潜在的数据丢失,与前一种情况相反。