When I specify a number to be a long
with a constant value 400
, is there any difference between using 400L
and 400l
?
Does it have some relationship to the wrapper type? Is L
used to get a wrapper Long
and l
for the primitive data type long
?
No practical difference. Either L
or l
can be used, both indicate a long
primitive. Also, either can be autoboxed to the corresponding Long
wrapper type.
However, it is worth noting that JLS-3.10.1 - Integer Literals says (in part)
An integer literal is of type
long
if it is suffixed with an ASCII letterL
orl
(ell); otherwise it is of typeint
(§4.2.1).The suffix
L
is preferred, because the letterl
(ell) is often hard to distinguish from the digit1
(one).