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
или d
для double
, но литерал с плавающим числом уже double
по умолчанию, поэтому это не нужно:
float asFloat = 0.5F;
double asDouble = 0.5D;
double alreadyDoubleByDefault = 0.5;
КстатиПожалуйста, не используйте l
(маленький L
), его легко спутать с 1
(один).