日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java栈和局部变量操作(二)

發布時間:2025/6/15 java 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java栈和局部变量操作(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2通用棧操作

操作碼

操作數

說明

nop

(無)

不做任何操作

pop

(無)

從操作數棧彈出棧頂部的一個字

pop2

(無)

從操作數棧彈出最頂端的兩個字

swap

(無)

交換棧頂部的兩個字

dup

(無)

復制棧頂部的一個字

dup2

(無)

復制棧頂部的兩個字

dup_x1

(無)

復制棧頂部的一個字,并將復制內容及原來彈出的兩個字長的內容壓入棧

dup_x2

(無)

復制棧頂部的一個字,并將復制內容及原來彈出的三個字長的內容壓入棧

dup2_x1

(無)

復制棧頂部的兩個字,并將復制內容及原來彈出的三個字長的內容壓入棧

dup2_x2

(無)

復制棧頂部的兩個字,并將復制內容及原來彈出的四個字長的內容壓入棧

1,dup:復制棧頂部的一個字長的內容。

棧:

前:......,word

后:......,word,word

2,dup_x1:復制棧頂部一個字長的內容,然后將復制內容及原來彈出的兩個字長的內容壓入棧

棧:

前:......,word2,word1

后:......,word1,word2,word1

3,dup_x2:復制棧頂部一個字長的內容,然后將復制內容及原來彈出的三個字長的內容壓入棧

棧:

前:.......,word3,word2,word1

后:.......,word1,word3,word2,word1

4,dup2:復制棧頂部長度為兩個字長的內容

棧:

前:......,word2,word1

后:......,word2,word1,word2,word1

5,dup2_x1:復制棧頂部兩個字長的內容,然后將復制內容及原來彈出的三個字長的內容壓入棧

棧:

前:......,word3,word2,word1

后:.......,word2,word1,word3,word2,word1

6,dup2_x2:復制棧頂部兩個字長的內容,然后將復制內容及原來彈出的四個字長的內容壓入棧

棧:

前:......,word4,word3,word2,word1

后:.......,word2,word1,word4,word3,word2,word1

7,pop:彈出棧頂端一個字長的內容

棧:

前:......,word

后:.......

8,pop2:彈出棧頂端兩個字長的內容

棧:

前:......,word2,word1

后:.......

9,swap:交換棧頂端兩個字的內容

棧:

前:......,word2,word1

后:.......,word1,word2

例如如下代碼:

public?class?StackTest {

?

/**

*?@param?args

*/

public?static?void?main(String[] args) {

//?TODO?Auto-generated method stub

String?a;

String?b;

a =?new?String("aaa");

b =?new?String("aaa");

}

?

}

用javap工具查看其字節碼為:

Compiled from "StackTest.java"

public class StackTest extends java.lang.Object{

public StackTest();

Code:

0: aload_0

1: invokespecial #8; //Method java/lang/Object."<init>":()V

4: return

?

public static void main(java.lang.String[]);

Code:

0: new #16; //class java/lang/String

3: dup

4: ldc #18; //String aaa

6: invokespecial #20; //Method java/lang/String."<init>":(Ljava/lang/String;)V

9: astore_1

10: new #16; //class java/lang/String

13: dup

14: ldc #18; //String aaa

16: invokespecial #20; //Method java/lang/String."<init>":(Ljava/lang/String;)V

19: astore_2

20: return

?

}

3,把局部變量壓入棧

將一個字長的局部變量壓入棧

操作碼

操作數

說明

iload

vindex

將位置為vindex的int類型的局部變量壓入棧

iload_0

(無)

將位置為0的int類型的局部變量壓入棧

iload_1

(無)

將位置為1的int類型的局部變量壓入棧

iload_2

(無)

將位置為2的int類型的局部變量壓入棧

iload_3

(無)

將位置為3的int類型的局部變量壓入棧

fload

vindex

將位置為vindex的float類型的局部變量壓入棧

fload_0

(無)

將位置為0的float類型的局部變量壓入棧

fload_1

(無)

將位置為1的float類型的局部變量壓入棧

fload_2

(無)

將位置為2的float類型的局部變量壓入棧

fload_3

(無)

將位置為3的float類型的局部變量壓入棧

將兩個字長的局部變量壓入棧

操作碼

操作數

說明

lload

vindex

將位置為vindex和(vindex+1)的long類型的局部變量壓入棧

lload_0

(無)

將位置為0和1的long類型的局部變量壓入棧

lload_1

(無)

將位置為1和2的long類型的局部變量壓入棧

lload_2

(無)

將位置為2和3的long類型的局部變量壓入棧

lload_3

(無)

將位置為3和4的long類型的局部變量壓入棧

dload

vindex

將位置為vindex和(vindex+1)的double類型的局部變量壓入棧

dload_0

(無)

將位置為0和1的double類型的局部變量壓入棧

dload_1

(無)

將位置為1和2的double類型的局部變量壓入棧

dload_2

(無)

將位置為2和3double類型的局部變量壓入棧

dload_3

(無)

將位置為3和4double類型的局部變量壓入棧

將對象引用局部變量壓入棧

操作碼

操作數

說明

aload

vindex

將位置為vindex的對象引用局部變量壓入棧

aload_0

(無)

將位置為0的對象引用局部變量壓入棧

aload_1

(無)

將位置為1的對象引用局部變量壓入棧

aload_2

(無)

將位置為2的對象引用局部變量壓入棧

aload_3

(無)

將位置為3的對象引用局部變量壓入棧

4,彈出棧頂元素,將其賦給局部變量

彈出一個字長的值,將其賦給局部變量

操作碼

操作數

說明

istore

vindex

從棧中彈出int類型值,然后將其存到位置為vindex的局部變量中

istore_0

(無)

從棧中彈出int類型值,然后將其存到位置為0的局部變量中

istore_1

(無)

從棧中彈出int類型值,然后將其存到位置為1的局部變量中

istore_2

(無)

從棧中彈出int類型值,然后將其存到位置為2的局部變量中

istore_3

(無)

從棧中彈出int類型值,然后將其存到位置為3的局部變量中

fstore

vindex

從棧中彈出float類型值,然后將其存到位置為vindex的局部變量中

fstore_0

(無)

從棧中彈出float類型值,然后將其存到位置為0的局部變量中

fstore_1

(無)

從棧中彈出float類型值,然后將其存到位置為1的局部變量中

fstore_2

(無)

從棧中彈出float類型值,然后將其存到位置為2的局部變量中

fstore_3

(無)

從棧中彈出float類型值,然后將其存到位置為3的局部變量中

彈出對象引用,并將其賦值給局部變量

操作碼

操作數

說明

lstore

vindex

從棧中彈出long類型值,然后將其存到位置為vindex和(vindex+1)的局部變量中

lstore_0

(無)

從棧中彈出long類型值,然后將其存到位置為0和1的局部變量中

lstore_1

(無)

從棧中彈出long類型值,然后將其存到位置為1和2的局部變量中

lstore_2

(無)

從棧中彈出long類型值,然后將其存到位置為2和3的局部變量中

lstore_3

(無)

從棧中彈出long類型值,然后將其存到位置為3和4的局部變量中

dstore

vindex

從棧中彈出double類型值,然后將其存到位置為vindex和(vindex+1)的局部變量中

dstore_0

(無)

從棧中彈出double類型值,然后將其存到位置為0和1的局部變量中

dstore_1

(無)

從棧中彈出double類型值,然后將其存到位置為1和2的局部變量中

dstore_2

(無)

從棧中彈出double類型值,然后將其存到位置為2和3的局部變量中

dstore_3

(無)

從棧中彈出double類型值,然后將其存到位置為3和4的局部變量中

操作碼

操作數

說明

astore

vindex

從棧中彈出對象引用,然后將其存到位置為vindex的局部變量中

astore_0

(無)

從棧中彈出對象引用,然后將其存到位置為0的局部變量中

astore_1

(無)

從棧中彈出對象引用,然后將其存到位置為1的局部變量中

astore_2

(無)

從棧中彈出對象引用,然后將其存到位置為2的局部變量中

astore_3

(無)

從棧中彈出對象引用,然后將其存到位置為3的局部變量中

5,wide指令

無符號8位局部變量索引,把方法中局部變量數的限制在256以下。一條單獨的wide指令可以將8位的索引再擴展8位,就可以把局部變量數的限制擴展到65536.

操作碼

操作數

說明

wide

iload,index

從局部變量位置為index的地方取出int類型值,并將其壓入棧

wide

lload ,index

從局部變量位置為index的地方取出long類型值,并將其壓入棧

wide

fload,index

從局部變量位置為index的地方取出float類型值,并將其壓入棧

wide

dload,index

從局部變量位置為index的地方取出double類型值,并將其壓入棧

wide

aload,index

從局部變量位置為index的地方取出對象引用,并將其壓入棧

wide

istore,index

從棧中彈出int類型值,將其存入位置為index的局部變量中

wide

lstore,index

從棧中彈出long類型值,將其存入位置為index的局部變量中

wide

fstore,index

從棧中彈出float類型值,將其存入位置為index的局部變量中

wide

dstore,index

從棧中彈出double類型值,將其存入位置為index的局部變量中

wide

astore,index

從棧中彈出對象引用,將其存入位置為index的局部變量中

跳轉指令并不允許直接跳轉到被wide指令修改過的操作碼。

?

總結

以上是生活随笔為你收集整理的Java栈和局部变量操作(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产日本欧美在线 | 国产自产精品 | 中文字幕69页 | 亚洲国产一二 | 国内一级视频 | 日本在线资源 | 日本一区二区精品 | 成人免费xxxxx在线视频 | av在线a | 四季av一区二区三区免费观看 | av三级网 | 久久网av| 香蕉视频免费网站 | 视频一二区 | 青青草视频免费观看 | 91日韩精品 | 亚洲精品网站在线观看 | 致命魔术电影高清在线观看 | 香蕉久久久久久久av网站 | 国产三区在线播放 | 色大师在线观看 | 久久成人一区 | 久久亚洲成人 | 天堂网av手机版 | 台湾极品xxx少妇 | 日韩最新网址 | 婷婷二区 | 老公吃小头头视频免费观看 | 日韩mv欧美mv国产网站 | 国产99久久久欧美黑人 | 中国大陆毛片 | 成人欧美一区二区三区黑人动态图 | 欧美少妇b| 国产喷水在线 | 成人中文在线 | 国产无玛 | 国产成年人 | 久久偷拍免费视频 | 波多野结衣av片 | 亚洲欧美综合在线观看 | 作爱视频在线 | 国产日产亚洲系列最新 | 国产成人观看 | 中文字幕一区二区三区乱码人妻 | 中文婷婷 | 咪咪色在线视频 | 成人精品影视 | 国产精品无码午夜福利 | 翔田千里在线播放 | 日本国产高清 | 精品国产乱码久久久久久免费 | 中文字幕精品一区 | 天天舔天天操 | 欧美变态视频 | 一区二区三区韩国 | 精品久久综合 | 亚洲视频三区 | 最近中文字幕在线中文高清版 | 欧美激情免费观看 | 黄色片怎么看 | aaa一级片| 一区二区不卡免费视频 | 天天插夜夜操 | 精品久久久久久亚洲精品 | 欧美偷拍一区二区 | 亚洲毛片在线观看 | 欧美资源 | 韩国伦理在线看 | 用我的手指扰乱你 | 国产不卡在线观看 | 亚洲熟女www一区二区三区 | 国产精品果冻传媒 | 国产视频分类 | 综合久久影院 | 制服中文字幕 | 激情另类视频 | 什么网站可以看毛片 | 亚洲三级精品 | 在线视频综合网 | 欧美人体视频一区二区三区 | 中文字幕第一区 | 国产欧美激情视频 | 精品一区91 | 国产精品桃色 | 国产一区二区三区观看 | 午夜欧美福利 | 日韩精品资源 | 国产91国语对白在线 | 国产色视频在线 | 欧美日韩1区 | 国产精品精品久久久 | 小香蕉影院 | 丰满女邻居的色诱4hd | 91中文视频 | 狠狠干天天色 | 日产久久久久久 | 台湾av在线播放 | 亚洲视频在线观看免费 | 久久高清精品 |