bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

深入淺析Java中的class文件格式-創新互聯

這期內容當中小編將會給大家帶來有關深入淺析Java中的class文件格式,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站設計制作、成都網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的平江網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

class文件中的fields_count和fields

fields_count描述的是當前的類中定義的字段的個數, 注意, 這里包括靜態字段, 但不包括從父類繼承的字段。 如果當前class文件是由一個接口生成的, 那么這里的fields_count描述的是接口中定義的字段, 我們知道, 接口中定義的字段默認都是靜態的。此外要說明的是, 編譯器可能會自動生成字段, 也就是說, class文件中的字段的數量可能多于源文件中定義的字段的數量。 舉例來說, 編譯器會為內部類增加一個字段, 這個字段是指向外圍類的對象的引用。 

位于fields_count下面的數據叫做fields, 可以把它看做一個數組, 數組中的每一項是一個field_info 。這個數組中一共有fields_count個field_info , 每個field_info都是對一個字段的描述。 下面我們詳細講解field_info的結構。 每個field_info的結構如下:

深入淺析Java中的class文件格式

(1)access_flags

其中access_flags占兩個字節, 描述的是字段的訪問標志信息。 這里就不在詳細介紹了, 下面給出一張表格(該表格來自《深入Java虛擬機》):

深入淺析Java中的class文件格式

(2)name_index

access_flags下面的兩個字節是name_index, 這是一個指向常量池的索引, 它描述的是當前字段的字段名。 這個索引指向常量池中的一個CONSTANT_Utf8_info數據項。 這個CONSTANT_Utf8_info數據項中存放的字符串就是當前字段的字段名。

(3)descriptor_index

name_index下面的兩個字節叫做descriptor_index , 它同樣是一個指向常量池的索引, 它描述的是當前字段的描述符。 這個索引指向常量池中的一個CONSTANT_Utf8_info數據項。 這個CONSTANT_Utf8_info數據項中存放的字符串就是當前字段的描述符。 

(4)attributes_count和attributes

descriptor_index 下面是attributes_count和attributes 。 這是對當前字段所具有的屬性的描述。 這里的屬性和源文件中的屬性不是同一個概念, 在源文件測層面中, 屬性是字段的另一種叫法, 希望讀者不要疑惑。讀者也不要輕視class文件中的屬性, 這些屬性可以描述很多的信息。 我們會在后面的文章中進行介紹。

attributes_count表示這個字段有幾個屬性。attributes 可以看成一個數組, 數組中的每一項都是一個attribute_info , 每個attribute_info 表示一個屬性, 數組中一共有attributes_count個屬性。可以出現在filed_info中的屬性有三種, 分別是ConstantValue, Deprecated, 和 Synthetic。 這些屬性會在后面的文章中進行介紹。

下面我們以代碼的形式進行解釋, 源碼如下:

package com.bjpowernode.test; 


public class Programer extends Person{ 


 
 private Computer computer; 
 
 public Programer(Computer computer){ 
  this.computer = computer; 
 } 
 
public void doWork(){ 
  computer.calculate(); 
 } 
}

新聞標題:深入淺析Java中的class文件格式-創新互聯
標題網址:http://vcdvsql.cn/article36/ddjpsg.html

成都網站建設公司_創新互聯,為您提供外貿建站網頁設計公司網站排名服務器托管手機網站建設網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設