<分区>
我有一个关于在 Java 中声明长变量的问题:
编译:long x = 10;
这会产生编译器错误:long x = 1000000000000
编译:long x = 1000000000000L
为什么我不需要在第一种情况下在数字后面加一个 L?这与编译器自动将 long 值转换为 int 值有什么关系(因为我猜这就是第一个示例中发生的情况)?
还有关于 float 的相同问题:
这不会编译:float f = 10.1;
编译:float f = 10;
编译:float f = 10.1f;
为什么第一个示例无法编译?为什么在第二个例子中不需要 f 前缀?这与编译器自动转换为 double 有什么关系?
提前致谢!