java - 为什么JLS声明最大的int字面量是2147483648?

标签 java jls

JLS 3.10.1。整数文字 http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.1

The largest decimal literal of type int is 2147483648.

同时这一行

int x = 2147483648;

产生编译错误

The literal 2147483648 of type int is out of range

JLS错了吗?

最佳答案

恕我直言,措辞不佳。它试图用这个表达式告诉我们什么:

-2147483648

减号不是整型文字的一部分,减号是一元减号运算符2147483648int 字面量和整数字面量 2147483648 可能只出现在这个确切的表达式中。

关于java - 为什么JLS声明最大的int字面量是2147483648?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369889/

相关文章:

java - 如何实现一个在服务器上运行大约 12 小时的程序?

java - 在阻塞 ServerSocketChannel 上使用选择器

java - 以下代码是否应该在 Java 1.8 下编译

java - 围绕 superfirst 工作

java - 显示不正确修饰符的匿名内部类

java.io.File 与 java.nio.Files 哪个是新代码中的首选?

java - Hibernate继承SingleTable子类连接

java - 如何批量对两个postgreSQL 大表进行外连接?

java - java中Long,long,Double,double等变量自动装箱或拆箱时,读写操作是原子的吗?

java - JVM 是否在加载特定类时加载所有使用的类?