Java:指定long时L和l(小写L)有区别吗?

Posted

技术标签:

【中文标题】Java:指定long时L和l(小写L)有区别吗?【英文标题】:Java: Is there a difference between L and l (lowercase L) when specifying a long? 【发布时间】:2017-04-18 14:56:20 【问题描述】:

当我将一个数字指定为long 和常量值400 时,使用400L400l 之间有什么区别吗?

它与包装器类型有什么关系吗? L 是否用于获取原始数据类型long 的包装器Longl

【问题讨论】:

【参考方案1】:

没有实际的区别。可以使用Ll,两者都表示long 原语。此外,任何一个都可以是 autoboxed 到对应的 Long 包装器类型。

然而,值得注意的是JLS-3.10.1 - Integer Literals 说(部分)

如果整数文字以 ASCII 字母 Ll (ell) 为后缀,则其类型为 long;否则为int (§4.2.1) 类型。

后缀L 是首选,因为字母l(ell)通常很难与数字1(一)区分开来。

【讨论】:

longs 是否比 Longs 更频繁地给出空指针异常?【参考方案2】:

是的:它的可读性。

乍一看很容易把400l误认为是四千零一。

我发现它更有可能正确解释为大写 L 的长度为 400。

【讨论】:

那为什么他们有小写long作为对象类型呢? @CollinFox long 是 Java 中的原始 64 位数据类型。 Long 是一个对象类型。

以上是关于Java:指定long时L和l(小写L)有区别吗?的主要内容,如果未能解决你的问题,请参考以下文章

gcc -I -L -l区别

gcc中的参数-I -L -l三者的区别

c 语言常量

编程规范

java中long型的怎么换成int型

Java中两个Long对象如何比较是否相等