为什么我们在Java中不需要很长的后缀?

Sid*_*iya 1 java

在编写一些代码时,我注意到long(原始)数据类型不需要后缀l或L。我的代码可以编译并正常运行。谁能解释这个背后的逻辑?提前致谢..

long l=435; //Complies and Run fine 
Run Code Online (Sandbox Code Playgroud)

dry*_*hip 5

当您这样做时:

long l=435;
Run Code Online (Sandbox Code Playgroud)

编译器将其视为int,然后,由于您给定的数据类型为long,因此它会自动转换long数据类型。因此,您不需要后缀。

但是,如果您尝试使用非常长的数字,例如:

long l = 9999999999;
Run Code Online (Sandbox Code Playgroud)

编译器将引发错误(整数太大)。因为,它将尝试将其视为an int,但是它太大而不能成为an int。因此,在这里,您需要一个后缀。如果您这样做:

long l = 9999999999L;
Run Code Online (Sandbox Code Playgroud)

然后它将编译。
简单地说,仅适用于long数据类型的数字需要后缀。