Java: Is there a difference between L and l (lowercase L) when specifying a long?

Lippstadtfreak picture Lippstadtfreak · Dec 4, 2016 · Viewed 8.6k times · Source

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?

Answer

Elliott Frisch picture Elliott Frisch · Dec 4, 2016

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 letter L or l (ell); otherwise it is of type int (§4.2.1).

The suffix L is preferred, because the letter l (ell) is often hard to distinguish from the digit 1 (one).