其中还有表达式之一被认为是java的较长的文字:爪哇较长的文字
1)0Xf000L
2)6L
3)(489 - 0L)/ 80
4) 30508600000
5)0XBD000
我的回答:
1)被认为是由于 “L” 的端
2)同第一
3)是不是一个字面但一个计算?
4)是大量长期
5)不长的文字
如果我错了地方请大家指正。另外,如果我们初始化的长变量最后没有“L”,它仍然被认为是长文字?因为如果我在编译器中这样做,它可以让我做到这一点(例如5.问题)谢谢!
其中还有表达式之一被认为是java的较长的文字:爪哇较长的文字
1)0Xf000L
2)6L
3)(489 - 0L)/ 80
4) 30508600000
5)0XBD000
我的回答:
1)被认为是由于 “L” 的端
2)同第一
3)是不是一个字面但一个计算?
4)是大量长期
5)不长的文字
如果我错了地方请大家指正。另外,如果我们初始化的长变量最后没有“L”,它仍然被认为是长文字?因为如果我在编译器中这样做,它可以让我做到这一点(例如5.问题)谢谢!
对于1),2)你是完全正确的,他们是冗长的文字。
3),正确的是:这是长型的常量表达式。尽管它是一个编译时常量,但它不算作文字。
4)不,这不是太大,不适合在long
。但是,由于它没有L
后缀,因此不会算作long
。这是一个int
,但同时太大以至于不能适应int
,正如评论中所讨论的那样,这是编译时错误。
5)是一个int
字面。它可用于任何需要long
值的地方(例如,分配给long
变量),但是您是正确的,但这不会使其成为长文字。
的基本规则是作为RealSkeptic说:“文字的整数型的长,如果它是与ASCII字母L或l(ELL)后缀;否则它是int类型(§4.2.1)。“(这里引用的是JLS section 3.10.1)。
(而只是为了获得上的肥皂盒,报价继续:后缀L被优选的,因为字母l(ELL)通常很难从数字1(1)来区分)
谢谢,那就是我一直在寻找的 – vucko95
没有什么值得我感谢的,我刚才总结了评论中已经说过的话。我只是觉得这对未来的读者可能会很好,现在很清楚这个问题已经得到解答。 –
2,4是可以肯定的,3可能取决于投球规则(我忘记了)。但无论如何,你不能在你的本地Java中测试这个吗? –
这很简单:如果它没有“L”,那么它不是一个长文字。如果它是一个计算而不是一个简单的数字,那么它不是一个文字。 – RealSkeptic
@RealSkeptic不完全... 4没有L,但它太大而不适合int,所以它必须被视为很长时间。 –