为什么用L写长

时间:2019-03-02 10:49:28

标签: java variables types declaration

如果要保存一个长变量,为什么必须在值的末尾写一个Ll

例如:

9_223_372
long v = 9_223_372L;

但是,如果我保存它:

long v = 9_223_372;

它仍然是一个长变量。那么为什么我必须写L或l?

1 个答案:

答案 0 :(得分:1)

int文字

如果您不编写它,Java会将其创建为int,然后将其强制转换为long

long number = 10;
// Is the same as
long number = (long) 10;
// i.e.
int asInt = 10;
long number = (long) asInt;

只要您输入的数字是int,此方法就可以使用,如果不是,则会失败,例如,数字很大:

// Fails, "integer number too large"
long number = 10_000_000_000_000_000;

使用L(或l),您告诉Java这个文字首先是long,而不是int。这也摆脱了不必要的转换:

long number = 10_000_000_000_000_000L;

注意

对于浮点数也是如此,当您想要float而不是double时,可以添加F(或f)。从技术上讲,您也可以为D添加ddouble,但是默认情况下,浮点数字常量已经为double,因此不需要:

float asFloat = 0.5F;
double asDouble = 0.5D;
double alreadyDoubleByDefault = 0.5;

顺便说一句,请不要使用l(小的L),它很容易与1(一个)混淆。