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

歡迎訪問 生活随笔!

生活随笔

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

java

Java虚拟机字节码指令概述

發(fā)布時間:2025/4/14 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java虚拟机字节码指令概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

虛擬機字節(jié)碼指令

Java虛擬機的指令由一個字節(jié)長度的、代表著某種特定操作含義的數(shù)字(稱為操作碼,Opcode)以及跟隨其后的零至多個代表此操作所需參數(shù)(稱為操作數(shù),Operands)而構成。

一 基本數(shù)據(jù)類型、加載和存儲指令

1、除了long和double類型外,每個變量都占局部變量區(qū)中的一個變量槽(slot),而long及double會占用兩個連續(xù)的變量槽。

2、大多數(shù)對于boolean、byte、short和char類型數(shù)據(jù)的操作,都使用相應的int類型作為運算類型。

?

加載和存儲指令

1、將一個局部變量加載到操作棧;
2、將一個數(shù)值從操作數(shù)棧存儲到局部變量表;
3、將一個常量加載到操作數(shù)棧;

存儲數(shù)據(jù)的操作數(shù)棧和局部變量表主要就是由加載和存儲指令進行操作,除此之外,還有少量指令,如訪問對象的字段或數(shù)組元素的指令也會向操作數(shù)棧傳輸數(shù)據(jù)。

二、const系列
該系列命令主要負責把簡單的數(shù)值類型送到棧頂。

三、push系列
該系列命令負責把一個整形數(shù)字(長度比較小)送到到棧頂。

四、ldc系列
該系列命令負責把數(shù)值常量或String常量值從常量池中推送至棧頂。

五、load系列
5.1、load系列A
該系列命令負責把本地變量的送到棧頂。
5.2、load系列B
該系列命令負責把數(shù)組的某項送到棧頂。

六、store系列
6.1、store系列A
該系列命令負責把棧頂?shù)闹荡嫒氡镜刈兞俊?br /> 6.2、store系列B
該系列命令負責把棧頂項的值存到數(shù)組里。

七、pop系列
該系列命令似乎只是簡單對棧頂進行操作,

八、棧頂元素數(shù)學操作及移位操作系列
該系列命令用于對棧頂元素行數(shù)學操作,和對數(shù)值進行移位操作。

運算指令
1、運算或算術指令用于對兩個操作數(shù)棧上的值進行某種特定運算,并把結果重新存入到操作棧頂。
2、算術指令分為兩種:整型運算的指令和浮點型運算的指令。
3、無論是哪種算術指令,都使用Java虛擬機的數(shù)據(jù)類型,由于沒有直接支持byte、short、char和boolean類型的算術指令,使用操作int類型的指令代替。

類型轉換指令

對象創(chuàng)建與訪問指令
? ?創(chuàng)建類實例的指令:new。
? ?創(chuàng)建數(shù)組的指令:newarray、anewarray、multianewarray。

操作數(shù)棧管理指令

控制轉移指令

方法調用和返回指令
? ? invokevirtual 指令用于調用對象的實例方法,根據(jù)對象的實際類型進行分派(虛方法分派),這也是Java語言中最常見的方法分派方式。

異常處理指令
? ? 在Java程序中顯式拋出異常的操作(throw語句)都由athrow指令來實現(xiàn),除了用throw語句顯式拋出異常情況之外,Java虛擬機規(guī)范還規(guī)定了許多運行時異常會在其他Java虛擬機指令檢測到異常狀況時自動拋出。

同步指令
? ? 方法級同步 方法內部一段指令序列的同步

總結

以上是生活随笔為你收集整理的Java虚拟机字节码指令概述的全部內容,希望文章能夠幫你解決所遇到的問題。

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