java - 为什么 java 允许它编译,在这种情况下它解释多个 + 符号是什么?

标签 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/

相关文章:

java - swing 中单选按钮上的 MouseListener

java - 转发 header 在 Spring Boot + Kubernetes 中不起作用

java - 给定 +ve 个整数数组,找出在 O(n) 时间和常数空间中出现奇数次的数字。

C# Java 命名管道稳定性

java - 为什么 PrinterState 总是空的?

Java:从字符串中删除数字

java - 带 ACL 的 Jade 代理协议(protocol)

Java/LibGDX - 跟踪从一个房间到另一个房间收集的元素

java - 无法从 Selenium 中的输入元素获取文本

java - 使用库运行 AWS lambda 函数时出现 NoClassDefFoundError