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
时,使用400L
和400l
之间有什么区别吗?
它与包装器类型有什么关系吗? L
是否用于获取原始数据类型long
的包装器Long
和l
?
【问题讨论】:
【参考方案1】:没有实际的区别。可以使用L
或l
,两者都表示long
原语。此外,任何一个都可以是 autoboxed 到对应的 Long
包装器类型。
然而,值得注意的是JLS-3.10.1 - Integer Literals 说(部分)
如果整数文字以 ASCII 字母
L
或l
(ell) 为后缀,则其类型为long
;否则为int
(§4.2.1) 类型。后缀
L
是首选,因为字母l
(ell)通常很难与数字1
(一)区分开来。
【讨论】:
longs 是否比 Longs 更频繁地给出空指针异常?【参考方案2】:是的:它的可读性。
乍一看很容易把400l
误认为是四千零一。
我发现它更有可能正确解释为大写 L 的长度为 400。
【讨论】:
那为什么他们有小写long作为对象类型呢? @CollinFoxlong
是 Java 中的原始 64 位数据类型。 Long
是一个对象类型。以上是关于Java:指定long时L和l(小写L)有区别吗?的主要内容,如果未能解决你的问题,请参考以下文章