站長資訊網
        最全最豐富的資訊網站

        java代碼是如何被機器識別的

        java代碼是如何被機器識別的

        java代碼是如何被機器識別的?

        首先,Java作為一門高級程序語言,其語法非常復雜,直接將 Java 代碼丟給機器,機器是無法識別 Java 代碼的。所以,對于Java語言來說,首先是使用編譯器將我們的 Java 源碼(.java文件)編譯成字節碼文件(.class文件),之后再使用虛擬機(JVM)將字節碼翻譯成機器碼,最后機器碼才能被機器識別并執行。

        請看下圖:

        java代碼是如何被機器識別的

        (免費學習視頻教程推薦:java視頻教程)

        解釋如下:

        其實 JVM 是無法直接運行字節碼文件的,JVM 需要將字節碼翻譯成機器碼才可以運行對應的代碼邏輯。在 HotSpot 虛擬機中,有兩種翻譯形式:第一種是解釋執行,即逐條將字節碼翻譯成機器碼并執行;第二種是即時編譯(Just-In-Time compilation,JIT),即將一個方法中包含的所有字節碼編譯成機器碼后再執行。這兩種方式各有優劣。

        解釋執行的優勢是無須等待編譯,立刻可以運行。而即時編譯的優勢在于實際運行速度更快。在 HotSpot 虛擬機中默認采用混合模式,綜合了解釋執行和即時編譯兩者的優點。它會先解釋執行字節碼,而后將其中反復執行的熱點代碼,以方法為單位進行即時編譯。

        Java 虛擬機執行 Java 字節碼的時候,首先會將字節碼文件加載到內存中,之后將加載后的 Java 類存放到方法區(Method Area)中。實際運行時,虛擬機會執行方法區中的代碼。

        在運行過程中,每次進入一個 Java 方法,Java 虛擬機會在當前線程的 Java 方法棧中生成一個棧幀,用以存放局部變量以及字節碼操作數。當退出當前執行方法時,無論正常返回還是異常返回,Java 虛擬機都會彈出當前線程的當前棧幀,將其丟棄。

        相關文章教程推薦:java入門教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品综合久久第一页| 亚洲精品国精品久久99热| 久久精品亚洲男人的天堂| 久久青青草原精品国产| 欧美精品在线免费| 影视网欧洲精品| 国内精品久久久久影院优| 亚洲国产精品不卡毛片a在线| 成人国产精品动漫欧美一区| 97久久精品无码一区二区天美| 亚洲精品色婷婷在线影院| 精品国产午夜福利在线观看| 亚洲国语精品自产拍在线观看 | 亚洲韩国精品无码一区二区三区| 国产成人精品一区在线| 国产精品露脸国语对白| 日韩国产精品无码一区二区三区| 午夜成人精品福利网站在线观看 | 女人高潮内射99精品| 国产精品日韩欧美久久综合| 九九热在线视频观看这里只有精品| 国产精品99久久免费观看| 无码精品人妻一区二区三区中| 欧美精品一区二区在线精品| 久久综合精品国产一区二区三区 | 91精品最新国内在线播放| 亚洲AV无码久久精品成人 | 国产成人精品日本亚洲专 | 老司机亚洲精品影院| 亚洲国产精品一区二区成人片国内 | 国产2021精品视频免费播放 | 无码人妻精品一区二区| 婷婷国产成人精品视频| 亚洲日韩精品射精日| 宅男在线国产精品无码| 亚洲精品成人无码中文毛片不卡| 中文字幕亚洲精品无码| 一本精品中文字幕在线| 日韩精品区一区二区三VR| 日韩精品真人荷官无码| 精品国产乱码久久久久久郑州公司 |