Java中,a++、++a、a+=1這3個和a=a+1有區(qū)別嗎(a++和++a區(qū)別不用說了)?如果這3個和a=a+1有區(qū)別,那么,什么情況下分別使用效果會不一樣?最好可以附上例子,謝謝!
4 回答

mtexiy_Sss
TA貢獻5條經(jīng)驗 獲得超3個贊
a=a+1,是先取a的值,在進行加加操作。它等同于a++;
a+=1,是先對a進行加1操作,在返回a的值。它等同于++a;
另外
a++ 直接對內存中的值進行加1并且將結果寫入內存,更效率
a=a+1 ?先申請一塊內存空間,分別把變量a 和常量1 放入累加器中計算后,再把結果放到內存中.
最后,這三類指令在編譯成匯編指令的時候也會有一定的差異,導致運行效率的變化,有興趣可以去嘗試一下。

最終幻想ssd
TA貢獻4條經(jīng)驗 獲得超2個贊
a+=1和a=a+1基本沒區(qū)別,a++ 和 ++a和a=a+1的區(qū)別是a++是先參加程序的運行再+1,而++a則是先+1再參加程序的運行。
舉個例子來說:
?a=2; ?b = a++; ? ?運行后: b = 2,a?=3?
?a=2; ?b = ++a; ? ?運行后: b = 3,a?=3;?

Dp_Dp
TA貢獻1條經(jīng)驗 獲得超1個贊
a += 1; 這個和 a = a +1 ; 這兩個是一樣的 只不過一個是簡寫
++a ?和 ? a++ ?這兩個區(qū)別在于運算的先后 ?比如 ? b = ++a; ? 這個是a先自增 然后才賦值 ? ?
b = a++; 這個是先賦值 后自增
添加回答
舉報
0/150
提交
取消