如声明here所述,在整数常量后放置L
会将其转换为Long
对象,而使用l
则会将其转换为原始对应{{1}但是,Oracle声称here"整数文字的类型为long
,如果后缀为ASCII字母long
或L
"
前者是在制造,还是后者在骗我?
如果甲骨文对我撒谎,那么l
与Long
的记忆和/或性能差异是否真的重要甚至可以检测到?
换句话说,Java IntegerTypeSuffix的情况真的重要吗?
答案 0 :(得分:1)
不,它没有。通常选择L,因为l可能被误认为是。
您链接的答案似乎有一个缺陷。
答案 1 :(得分:0)
将后缀l
或L
放在数字文字的末尾表示long
字面值,而不是Long
对象。
Section 3.10.1 of the JLS指定带有l
或L
后缀的数字文字的数据类型:
如果整数文字后缀为ASCII字母L或l(ell),则其长度为long;否则它的类型为int(§4.2.1)。
在指定大数量的文字时,类型可能很重要,这些文字太大而无法放入int
字面值。
// 10 billion is illegal; too big to fit in an int,
// even if later assigned to a long
long tooBigInt = 10000000000;
// 10 billion here is a legal long literal
long justRight = 10000000000L;