标签列表
为什么-1001不是有效的Java整数文字?
java
integer
literals
6
6
在Java中,
-1001
不被视为有效的整数字面量。为什么?
-
Ana S
2
我投票将此问题关闭,因为它似乎是胡言乱语。
- Kayaman
实际上,如果我可以插一句的话,这位楼主触及到了一个常见的误解。点赞。
- Bathsheba
2
个回答
10
10
在Java中,不存在负十进制字面量;请参见
JLS§3.10.1
。
-1001是一个可在编译时求值的常量表达式,由对字面量1001进行一元取反得到。
(C和C++也适用此规则。)
-
Bathsheba
2
1
但有趣的是,
不是JavaScript
。
- T.J. Crowder
2
准确地说:存在负文字面量-只是它们不使用“ -”书写,并且没有负十进制文字面量。引用JLS:“int类型的最负16进制[...]字面值,每个字面值都表示十进制值-2147483648(-231),分别为:• 0x8000_0000 [...]”。
- piet.t
回答链接
1
1
在Java 7及以上版本中,数字-1001是有效的整数字面值。
-
David
1
我发现在Java 7及以上版本中,“-1001”实际上是一个有效的整数字面量...如果我误导了某个人,我很抱歉。
- Ana S
回答链接
网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接
相关问题
4
为什么定宽整数输出字符而不是整数?
4
Java正则表达式错误:\(不是一个有效字符。
14
为什么Java中短整数相除的结果类型不是短整数?
3
Java:当命令行参数不是有效的整数时,我该如何打印错误消息?
50
为什么在Java中08不是有效的整数字面量?
38
为什么Java看不出整数相等?
8
为什么 "while((String tmp=x))" 不是有效的Java语法?
6
Java lambda - for循环计数器不是有效的final
85
为什么要使用整数而不是长整数?
7
为什么Java库使用常量整数而不是枚举?