您好,歡迎來到賦能網(wǎng)!

Java培訓(xùn)帶你了解代碼編譯與反編譯

賦能網(wǎng) 2023-05-10 50


一、什么是編譯

      1、利用編譯程序從源語言編寫的源程序產(chǎn)生目標(biāo)程序的過程。
      2、用編譯程序產(chǎn)生目標(biāo)程序的動作。 編譯就是把高級語言變成計(jì)算機(jī)可以識別的2進(jìn)制語言,計(jì)算機(jī)只認(rèn)識1和0,編譯程序把人們熟悉的語言換成2進(jìn)制的。 編譯程序把一個源程序翻譯成目標(biāo)程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標(biāo)代碼生成。主要是進(jìn)行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。
二、什么是反編譯
       計(jì)算機(jī)軟件反向工程(Reverse engineering)也稱為計(jì)算機(jī)軟件還原工程,是指通過對他人軟件的目標(biāo)程序(可執(zhí)行程序)進(jìn)行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過程、運(yùn)行方法等設(shè)計(jì)要素,某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產(chǎn)品中。
三、 java類的編譯與反編譯
        我們在最初學(xué)習(xí)Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
        class文件打破了C或者C++等語言所遵循的傳統(tǒng),使用這些傳統(tǒng)語言寫的程序通常首先被編譯,然后被連接成單獨(dú)的、專門支持特定硬件平臺和操作系統(tǒng)的二進(jìn)制文件。通常情況下,一個平臺上的二進(jìn)制可執(zhí)行文件不能在其他平臺上工作。而Java class文件是可以運(yùn)行在任何支持Java虛擬機(jī)的硬件平臺和操作系統(tǒng)上的二進(jìn)制文件。那么反編譯呢,就是通過helloworld.class文件得到j(luò)ava文件(或者說是程序員能看懂的Java文件)。
四、什么時候會用到反編譯
       我們只有一個類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。學(xué)習(xí)Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實(shí)現(xiàn)細(xì)節(jié),我們可以借助反編譯。

  想了解更多相關(guān)資訊請關(guān)注java培訓(xùn)頻道-查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579

本文鏈接:

本文章“Java培訓(xùn)帶你了解代碼編譯與反編譯”已幫助 50 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: