中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java class文件格式總結_動力節點Java學院整理

發布時間:2020-09-25 15:21:03 來源:腳本之家 閱讀:137 作者:mrr 欄目:編程語言

我們都知道JVM能夠識別的只有class格式的文件, 而源文件只是我們人能識別的, 不能被JVM識別。 那我們要在更深的層次上理解Java語言, 理解JVM, 只懂源文件是不夠的, 因為虛擬機的很多的行為, 是在class文件中定義的, 而我們要理解JVM的行為, 就必須也學會JVM能理解的“語言”, 那就是class文件格式 。 就像我們想要深入的了解一個外國人, 只站在自己的角度上是不可能了解他的, 只有你學會了他的語言, 才能對他更了解, 因為只有你理解了他說的話, 才能知道他做的事, 進而了解他的行事方式和性格特點。 當然, 也有另外一個方式可以讓你了解外國人, 那就是讓他學會中國話, 你們用中文交流。 但是在Java的世界里, 這是不可能的, 因為你不可能讓JVM識別源文件, 所以, 只能你去學習JVM能理解的語言 ---- class文件。 

理解了class文件的格式, 不僅對理解JVM的行為有指導性的意義, 它還能讓我們對Java代碼有更加清晰深刻的認識, 畢竟class文件是由我們寫的java代碼“翻譯”過來的。 明白了class文件的格式, 你就能知道方法是如何表示的, 字段是如何表示的, 繼承是如何表示的 , 方法體是如何表示的, 等等。 所有源文件中的東西, 都會在class文件中有相應的描述形式。 這樣會讓我們在寫代碼時做到胸有成竹。 當代碼出了問題時, 也能更快的找出原因所在,因為我們可以把源碼生成的class文件反編譯出來, 看看它內部是如何實現的。 畢竟原理明白了, 源代碼只是表象罷了。

此外, class文件不只是可以由Java代碼生成。 其他很多基于JVM的語言, 也是生成標準的class文件, 然后被虛擬機執行。 如我最近正在學習的scala語言, 它就是基于虛擬機的。  scalac編譯器可以將scala代碼編譯成class文件。 這樣的話, 了解class文件格式, 可以對學習其他基于JVM的語言起到很好的作用, 你會發現, 如果你對class文件和JVM足夠了解的話, 學習這些語言會感到非常輕松。 class文件是JVM的一個接口, 不管你源文件中寫的是什么代碼, 不管是java還是scala, 只要通過一定的方式, 讓你寫的代碼可以轉化成格式正確的class文件, 那么JVM就能替你執行。 如果你足夠牛, 完全可以自己創建一門語言, 實現一個針對這個語言的編譯器, 將之編譯成class, 那么虛擬機也能執行, 并且Scala,Groovy等語言的設計者已經在這么干了。  

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗甸县| 出国| 阳西县| 子洲县| 鞍山市| 连云港市| 宿迁市| 台州市| 中西区| 阳西县| 泰来县| 灵川县| 定日县| 沧源| 壶关县| 望奎县| 正阳县| 桃源县| 四会市| 福贡县| 梓潼县| 赤水市| 永胜县| 长沙县| 信阳市| 多伦县| 富蕴县| 崇信县| 梅州市| 吉林市| 山阳县| 浦城县| 财经| 宁阳县| 临西县| 潞西市| 台江县| 乡宁县| 富源县| 瓦房店市| 广元市|