您好,登錄后才能下訂單哦!
這篇文章主要講解了“class文件里邊有什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“class文件里邊有什么”吧!
首先屬性表是用來補充信息用的,比如他可以繼續補充類文件的信息、就是我們上面最后的那一段內容,還有他可以補充字段的信息,補充方法的信息。所以它出現的位置不同,補充的額外信息也會不一樣。
下面我們 「簡單」 的了解一下都有哪些 「主要」 的內容,之所以要簡單、要了解主要的,就是因為它保存的額外信息實在太多了。
屬性表的結構是由 2 個字節的屬性名索引,4 個字節的屬性內容長度,和 1 個字節的屬性信息組成。
按照屬性的類別可以分為:類文件屬性、字段表屬性、方法表屬性
保存主類和內部類的關系
記錄生成這個Class文件的源碼文件名稱
Java 程序方法體里面的代碼經過 Javac 編譯器處理之后, 最終變為字節碼指令存儲在Code屬性內。并非所有的方法表都必須存在這個屬性, 接口或者抽象類中的方法就不存在Code屬性 。
code 屬性里面還有屬性表.... (套娃啊),其中包含
Exceptions屬性的作用是列舉出在throws關鍵字后面拋出的異常
定義方法的參數信息
這個屬性用于為字段的靜態變量賦值。只有字段聲明為 static 時才有效。Javac 編譯器在編譯的時候,如果遇到 static 和 final 同時修飾的 基本類型或String 類型變量,會直接在 ConstantValue 屬性進行字段初始化。也就是我們說的常量。如果沒有 final 修飾,或者不是基本類型和 String 類型,則會在類初始化方法執行的時候初始化 <clinit>
Deprecated屬性用于表示某個類、 字段或者方法被棄用
感謝各位的閱讀,以上就是“class文件里邊有什么”的內容了,經過本文的學習后,相信大家對class文件里邊有什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。