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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

深入解析Java字节码和字节码操作类库ASM源码解析

發(fā)布時間:2024/4/13 java 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入解析Java字节码和字节码操作类库ASM源码解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導(dǎo)語

在非黑即白的靜態(tài)編譯語言和動態(tài)腳本語言的分類方法中,java的立場顯得很尷尬。首先java是靜態(tài)強(qiáng)類型語言,所以java源代碼是需要編譯的。但是javac編譯后的產(chǎn)出物并不是和傳統(tǒng)的編譯語言一樣的可以在特定OS上無依賴運行機(jī)器碼。而是一種介于java源碼和硬件機(jī)器碼之間且運行需要依賴JVM抽象層的中間格式,也就是本文討論的中心:jvm字節(jié)碼。注意用詞,字節(jié)碼是屬于JVM的,是面向JVM的字節(jié)碼。

JVM生態(tài)分為如下3個部分:java原生語法和與之配套的源碼編譯器,jvm字節(jié)碼規(guī)范,jvm實現(xiàn)規(guī)范。字節(jié)碼是一套協(xié)議或者中間抽象層,是被編譯器和虛擬機(jī)共同遵守的協(xié)議。編譯器將源碼解析處理成規(guī)范的字節(jié)碼,jvm讀取字節(jié)碼文件magic,裝載解析字節(jié)碼。jvm語言生態(tài)如此蓬勃:kotlin,groovy等,都是因為有了字節(jié)碼這層抽象。不管你定義什么樣或現(xiàn)代或簡潔的新的語言語法,只要你能配套的實現(xiàn)與之相關(guān)的編譯器,能夠?qū)⒃创a處理成規(guī)范的字節(jié)碼,那么你就能在jvm上運行。字節(jié)碼的來源對于jvm來說是透明的,jvm才不知道你是java還是kotlin編譯來的呢。它只對字節(jié)碼規(guī)范和jvm規(guī)范負(fù)責(zé)。
綜上,JVM生態(tài)中,無論是上層語言語法層次,還是底層JVM裝載運行層次,都只用分別對JVM字節(jié)碼規(guī)范負(fù)責(zé)。JVM字節(jié)碼規(guī)范的重要性不言而喻。這也是本文討論的重點。
注意:JVM語言百花齊放的本質(zhì)原因就是因為JVM沒有和Java的語言語法特性綁定,而是和中間字節(jié)碼綁定,這應(yīng)該是每一個java開發(fā)同學(xué)的常識

字節(jié)碼初探

轉(zhuǎn)載于:https://www.cnblogs.com/jialin16/p/8661772.html

總結(jié)

以上是生活随笔為你收集整理的深入解析Java字节码和字节码操作类库ASM源码解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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