Java中++的使用问题

为什么在jvm中
int a=10;
int b=15;
System.out.println(b+++(++a));可以成功编译
而System.out.println(b+++(++a));就编译失败
不对 是
(b++)+++a 这样就失败

(b++)+++a

后缀结合优先更高些,这个系统应该认为是这样了((b++)++)+a,但是++是单目运算符又不能用在表达式上,

正确的话应该加个括号强制指定一下(b++)+(++a)
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-07-15
建议学习下java的运算符和先后顺序就知道哪里的问题了,顺序错误肯定要报错的啊。

Java中++操作符是线程安全的吗?
Java中的++操作符在单线程环境下是线程安全的,因为它是一个原子操作,不会被其他线程中断。然而,多个线程同时对同一变量执行递增操作时,会引发竞态条件问题,导致结果不准确。为解决此问题,可使用AtomicInteger类。此类提供了原子递增操作,保证了在多线程环境下的线程安全性。通过使用AtomicInteger的incremen...

java中i=i++问题解析
在Java学习中,自增操作常常引起困惑,比如i=i++和++i的区别。让我们通过实例来理解:对于i++,它先执行当前值,然后加1,如int m=7+(a++); 过程是:先计算m=7+a,然后a自增1。最终结果是a=11,m=17。然而,当遇到i=i++这样的情况,可能会产生疑问。以varNum=varNum++为例,按常规理解...

Java里的i++与++i的问题
首先,你前面一句话说的很对,i++是先运算最后加,++i是先加后参与运算。至于for(int i=0;i<20;i++){ };循环中的i++,它是这样递增的:i++是迭代语句,它的执行是有先后顺序的 程序进入for循环后,先执行int i=0;初始化,它只执行一次,然后程序检查i<20;如果i<20那么执行for循环,...

关于Java中前缀++和后缀++的问题
就是自身值加1 在前缀自加表示,自加了再赋值 即int b=++a;所以b的值是a+1 int b=++a;可以化成这样 a=a+1;int b=a;而后缀是表示赋值就再自加 即int b=a++;所以b的值是a int b=a++;可以化成这样 int b=a;a=a+1;所以无论怎么样a 的值都会加多1而b则看情况 ...

JAVA中的i++问题
i++是将在累加器中进行计算 计算结果送回到寄存器 所以i++返回的是i本身的值 而计算后 i的值为i+1 拿题中例子表示 i=3 i++返回的是3 而计算后i等于4 这时不难理解题中意思 int count=(i++)+=(i++)+=(i++)第一个i++ 返回的是3 而此时 i的值已经是4 第二个i++ 返回的就是...

java符号++什么意思谁能给详细讲述一下
1. 放在变量左边叫前置递增运算符,它在变量被引用前先让变量产生递增(即加一),再将递增后的值代入表达式进行计算。2. 放在变量右边叫后置递增运算符,它在变量被引用后才让变量产生递增(即加一),即将递增前的值代入表达式进行计算。举例:int a = 0;int b = ++a;\/\/ a先递增,结果a=1, ...

java中i=i++,运行后,i值不变,谁能帮忙解释下呢?
先将i++看成一个整体,它的值就是i的值,而它的值被读取之后i马上+1,所以i=i++还没进行=运算的时候 i 就已经+1了,然而i++作为一个整体的值已被读取就是 i ,所以=运算就把 i 原先的值又赋给了 i ,所以值没变。

java左++和右++运算到底怎么回事。
a++是先赋值在运算,++a是先运算在的赋值。int b=a++。会先把a=2的值赋给b,然后你在控制台打印是2,接着他才回进行运算,a才等于三。++a顺序反过来。

请教java中=和++的优先级问题
i++; 其实等于 i=i+1;也就是先算i+1=?再算i=?所以++优先级必定高于=。++i就更不用说了!

java中的++是什么意思
int i=(i2++); 表示把i2先进行操作,再++。这里就是先把i2的值赋给i,这是i的值是20,然后i2再自加一,这是i2的值是20+1。i++ 和 ++i不一样。例如,int i=5;int j=0;j=i++; \/\/先把i的值给j(j=5),然后i自增1,i=6.System.out.println("J="+j);\/\/打印出来...

相似回答