【发布时间】:2017-04-18 14:56:20
【问题描述】:
当我将一个数字指定为long 和常量值400 时,使用400L 和400l 之间有什么区别吗?
它与包装器类型有什么关系吗? L 是否用于获取原始数据类型long 的包装器Long 和l?
【问题讨论】:
标签: java types wrapper long-integer
当我将一个数字指定为long 和常量值400 时,使用400L 和400l 之间有什么区别吗?
它与包装器类型有什么关系吗? L 是否用于获取原始数据类型long 的包装器Long 和l?
【问题讨论】:
标签: java types wrapper long-integer
没有实际的区别。可以使用L 或l,两者都表示long 原语。此外,任何一个都可以是 autoboxed 到对应的 Long 包装器类型。
然而,值得注意的是JLS-3.10.1 - Integer Literals 说(部分)
如果整数文字以 ASCII 字母
L或l(ell) 为后缀,则其类型为long;否则为int(§4.2.1) 类型。后缀
L是首选,因为字母l(ell)通常很难与数字1(一)区分开来。
【讨论】:
是的:它的可读性。
乍一看很容易把400l误认为是四千零一。
我发现它更有可能正确解释为大写 L 的长度为 400。
【讨论】:
long 是 Java 中的原始 64 位数据类型。 Long 是一个对象类型。