最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文帶你搞懂Java中i++ 和 ++i的區(qū)別

 更新時(shí)間:2023年09月24日 08:57:11   作者:程序員濟(jì)癲  
在Java中,i++和++i都用于遞增變量i的值,但它們之間有一個(gè)細(xì)微的區(qū)別,i++是后綴遞增操作符,++i是前綴遞增操作符,在大多數(shù)情況下,這兩種遞增操作的結(jié)果都是一樣的,但在某些特定的表達(dá)式和邏輯中,它們可能會(huì)產(chǎn)生不同的效果,本文將帶大家搞清Java中i++ 和 ++i的區(qū)別

正文

1、i++ 和 ++i 有什么區(qū)別

首先,先看兩個(gè)小例子:

到這里先停一下,大家自己思考半分鐘,覺(jué)得打印結(jié)果是什么。

然后,我們來(lái)看看結(jié)果。

沒(méi)錯(cuò),第一個(gè)打印是 6 和 5,第二個(gè)打印是 6 和 6。

這就是他們的區(qū)別,解釋下原因:

i++:這是后綴遞增運(yùn)算符,先將當(dāng)前值賦給變量,然后再遞增。

++i:這是前綴遞增運(yùn)算符,先遞增變量的值,然后再賦給變量。

2、i++ 和 ++i 誰(shuí)的效率高

這個(gè)問(wèn)題我其實(shí)蒙對(duì)了,我說(shuō)是一樣高的,但是主管問(wèn)我原因,我沒(méi)答上來(lái)。

后來(lái)告訴我了答案,就是它們被編譯器和JVM優(yōu)化后的字節(jié)碼是相同的,所以效率一樣高。

3、字節(jié)碼指令

然后我就去找了字節(jié)碼指令的用法,將上面的案例以及兩者效率是否一樣進(jìn)行了驗(yàn)證。

指令用法很簡(jiǎn)單,定位到class文件所在目錄,使用 javap -verbose 命令執(zhí)行即可。

1)、從字節(jié)碼看區(qū)別

我們將前面那個(gè)案例,通過(guò)字節(jié)碼指令輸出到txt文件中。

在文檔編輯器中找到main方法,對(duì)這兩個(gè)字節(jié)碼內(nèi)容進(jìn)行比對(duì),發(fā)現(xiàn)確實(shí)有如下不同。

可以看到紅框部分,剛好佐證了上面解釋的區(qū)別,i++會(huì)先使用當(dāng)前值,然后再遞增;而++i會(huì)在遞增之后立即使用新值,通過(guò)字節(jié)碼看起來(lái)還是挺明顯的。

2)、從字節(jié)碼看誰(shuí)的效率高

我們依然寫(xiě)個(gè)for循環(huán)的小例子來(lái)做驗(yàn)證。

將這兩個(gè)類(lèi)編譯后的class通過(guò)字節(jié)碼指令輸出到txt中

接下來(lái)我們就可以比對(duì)下結(jié)果了

可以看到,main方法開(kāi)始,從上到下的字節(jié)碼是完全一樣的,沒(méi)任何不同。

所以,i++ 和 ++i 的效率本質(zhì)是一樣高的。

總結(jié)

以上就是一文帶你搞懂Java中i++ 和 ++i的區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于Java i++ 和 ++i的區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

新乡县| 奉新县| 年辖:市辖区| 临猗县| 合山市| 增城市| 金秀| 浙江省| 竹溪县| 屏东市| 甘洛县| 临潭县| 兰坪| 洮南市| 恩施市| 聂荣县| 南涧| 页游| 贵德县| 乃东县| 高雄县| 五峰| 中卫市| 屏山县| 霞浦县| 杭锦旗| 威远县| 繁昌县| 莎车县| 金乡县| 中阳县| 荥经县| 南城县| 深水埗区| 册亨县| 安丘市| 兰州市| 溧水县| 诏安县| 桂平市| 那坡县|