Java原语声明



给定以下代码片段:

int i = 0;
int y = + ++i;
System.out.println(y);

结果为1。为什么这是一个有效的声明?有人能解释一下=+是什么吗?

int y = + ++i;

本行中的第一个+只是一元+运算符(参见:赋值、算术和一元运算符)。它什么也不做。它类似于一元-算子。上面这行相当于:

int y = ++i;

i加1,然后将i的新值赋给y

此处+表示该值为正或非正,即unary运算符,如果您将值更改为-,则答案将是-1。也就是int y = - ++i;会得到-1

等号后面的第一个加号是该值的符号。这意味着它是一个正数

int y = - ++i;将返回-1

Java保证将对left-to-right求值。具体来说,++比+具有higher precedence。所以它首先绑定了这些,然后将从左到右的加法操作关联起来

最新更新