jsp數組入門教程

來源:互聯網
上載者:User

1、針對對象的作業碼

執行個體化一個新對象需要通過new作業碼來實現。

對象的建立

作業碼
 運算元
 說明
 
new
 index
 在堆中建立一個新的對象,將其引用壓入棧
 

new作業碼後面緊跟一個無符號16位元,表示常量池中的一個索引。在特定位移量位置處的常量池入口給出了新對象所屬類的資訊。如果還沒有這些資訊,那麼虛擬機器會解析這個常量池入口。它會為這個堆中的對象建立一個新的執行個體,用預設初始化對象執行個體變數,然後把新對象的引用壓入棧。

存取執行個體變數

作業碼
 運算元
 說明
 
putfield
 index
 設定對象欄位(由index指定)的值,值value和對象引用objectref均從棧中獲得
 
getfield
 index
 將對象欄位(由index指定)壓入棧,對象引用objectref棧中取得
 

存取類變數

作業碼
 運算元
 說明
 
putstatic
 index
 設定靜態欄位(由index指定)的值,值value從棧中獲得
 
getstatic
 index
 將靜態欄位(由index指定)壓入棧
 

putfield和getfield這兩個作業碼只在欄位是執行個體變數的情況下才執行,putstatic和getstatic對靜態變數進行存取操作。運算元表示常量池的索引。這個索引所指向的常量池入口包含了該欄位的所屬類、名字和類型等資訊。如果還沒有這些資訊,虛擬機器會解析這個常量池入口。

例如下面代碼:

public class testa {

int x;

int y;

}

public class testmain {

 

/**

* @param args

*/

public static void main(string[] args) {

// todo auto-generated method stub

testa testa = new testa();

testa.x = 3;

testa.y = 4;

}

 

}

用javap工具查看其位元組碼指令為:

compiled from "testmain.java"

public class testmain extends java.lang.object{

public testmain();

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 testa 建立 testa對象

3: dup //

4: invokespecial #18; //method testa."<init>":()v 調用構造方法

7: astore_1 //存入位置為1的局部變數

8: aload_1 //取出位置為1的局部變數壓入棧

9: iconst_3 //常量3入棧

10: putfield #19; //field testa.x:i 賦值

13: aload_1

14: iconst_4

15: putfield #23; //field testa.y:i

18: return


}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.