最近做了一道題,非常容易落入陷阱。
當count初始值爲0,count=count++;和count=++count;運行出來的結果是不一樣的。count=count++運行出來的結果依舊爲0;
這是因爲JVM運行時,會把count變量拷貝到到臨時變量區,count的值0放入操作數棧中,此時count=0,count++後是先加一後賦值,對局部變量表的count加1,然後再把操作數棧中的0出棧賦值給局部變量表。所以雖然count變爲1,但是最後賦給count的值依然爲0。
最近做了一道題,非常容易落入陷阱。
當count初始值爲0,count=count++;和count=++count;運行出來的結果是不一樣的。count=count++運行出來的結果依舊爲0;
這是因爲JVM運行時,會把count變量拷貝到到臨時變量區,count的值0放入操作數棧中,此時count=0,count++後是先加一後賦值,對局部變量表的count加1,然後再把操作數棧中的0出棧賦值給局部變量表。所以雖然count變爲1,但是最後賦給count的值依然爲0。