<分区>
我不确定如何准确地表达这个问题,但我在构建日期时注意到一些奇怪的事情。我发现如果我构造一个这样的日期
new Date(+ 1)
它编译得很好,也是如此
new Date(+ + + 1)
如果我执行以下命令,输出为 1
public static void main(String[] args) {
int x = 1;
System.out.println(+ + + + x);
}
谁能解释一下 JVM 认为我在做什么?
标签 java
<分区>
我不确定如何准确地表达这个问题,但我在构建日期时注意到一些奇怪的事情。我发现如果我构造一个这样的日期
new Date(+ 1)
它编译得很好,也是如此
new Date(+ + + 1)
如果我执行以下命令,输出为 1
public static void main(String[] args) {
int x = 1;
System.out.println(+ + + + x);
}
谁能解释一下 JVM 认为我在做什么?
最佳答案
这是unary operator (+) .您始终可以将 + 添加到数字,这将为您提供数字的正值。
因为您以这种方式分隔标记,词法分析器不会将此处的任何内容解释为递增,因此您将四个一元 (+) 运算添加到值 1。
关于java - 为什么 java 允许它编译,在这种情况下它解释多个 + 符号是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51676036/