Java: существует ли разница между L и l (нижний регистр L) при указании длинного?

Когда я указываю, что число должно быть long с постоянным значением 400, существует ли разница между использованием 400L и 400l?

Имеет ли отношение к типу обертки? Является ли L используется для получения обертки Long и l для примитивного типа данных long?

Ответ 1

Никакой практической разницы. Либо L либо l могут использоваться, оба указывают на long примитив. Кроме того, любой из них может быть автобоксирован к соответствующему типу Long wrapper.

Однако стоит отметить, что JLS-3.10.1 - Integer Literals (частично) говорит,

Целочисленный литерал имеет тип long если он суффикс с буквой ASCII L или l (ell); в противном случае это тип int (п. 4.2.1).

Суффикс L является предпочтительным, поскольку букву l (ell) часто трудно отличить от цифры 1 (одна).

Ответ 2

Да: это читаемость.

Легко ошибиться в 400l за четыре тысячи и один, когда вы сначала взглянете на него.

Я считаю, что он более правильно интерпретирует его так, как четыреста длинный с верхним регистром L.