程序設(shè)計高級語言的原理都是相似的。JAVA,C,C++,等都類似。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、新興網(wǎng)站維護、網(wǎng)站推廣。
說一下JAVA的:
我們先把自然語言,也就是我們平時的話寫成程序設(shè)計高級語言,這是編程。
然后再通過編譯器生成class也就是字節(jié)碼文件,這個過程是編譯。此時的class文件我們也可以稱之為二進制碼,就是計算機可識別的0,1文件了。而編譯是計算機內(nèi)部運行,不需要編程者操作。
.java是以源文件形式存在,是編譯器和我們都可識別的語言。
編譯器識別了.java文件后生成.class文件,是編譯器和計算機可識別的語言。
然后計算機會使同名的.java和.class文件關(guān)聯(lián),計算機自己有兩次翻譯過程,而這個過程操作者并不需要操心。之后我們就可以運行.java文件了。
三種方法:
1.在IDE中,如eclipse中寫的Java程序,在點擊保存后eclipse就會調(diào)用javac編譯程序編譯,編譯文件在當前項目的bin目錄下。
2.作為一個獨立的文件且沒有定義Java環(huán)境變量,需要在cmd窗口中切換到j(luò)ava bin目錄下執(zhí)行Javac程序,執(zhí)行格式為?????javac 空格 Java源文件;如 javac? C://hello.java;
3.作為一個獨立的文件且定義了Java環(huán)境變量,打開cmd窗口,可以在任意目錄輸入javac java源文件,如javac D://hi.java。
擴展資料
Java也是一種高級語言,要讓計算機執(zhí)行你撰寫的Java程序,也得通過編譯程序的編譯。但是Java編譯程序并不直接將Java源代碼編譯為相依于計算機平臺的0、1序列,而是將其編譯為字節(jié)碼。
Java源代碼的擴展名為.java,經(jīng)過編譯程序編譯之后生成擴展名為.class的字節(jié)碼。
Java代碼的編譯與反編譯
2017-02-21Hollis數(shù)盟
一、什么是編譯
1、利用編譯程序從源語言編寫的源程序產(chǎn)生目標程序的過程。
2、用編譯程序產(chǎn)生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優(yōu)化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發(fā)現(xiàn)有語法錯誤,給出提示信息。
二、什么是反編譯
計算機軟件反向工程(Reverseengineering)也稱為計算機軟件還原工程,是指通過對他人軟件的目標程序(可執(zhí)行程序)進行“逆向分析、研究”工作,以推導出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過程、運行方法等設(shè)計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發(fā)軟件時的參考,或者直接用于自己的軟件產(chǎn)品中。
三、Java類的編譯與反編譯
我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語言所遵循的傳統(tǒng),使用這些傳統(tǒng)語言寫的程序通常首先被編譯,然后被連接成單獨的、專門支持特定硬件平臺和操作系統(tǒng)的二進制文件。通常情況下,一個平臺上的二進制可執(zhí)行文件不能在其他平臺上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬件平臺和操作系統(tǒng)上的二進制文件。
那么反編譯呢,就是通過helloworld.class文件得到j(luò)ava文件(或者說是程序員能看懂的Java文件)
四、什么時候會用到反編譯
1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。
2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現(xiàn)細節(jié),我們可以借助反編譯。
五、反編譯工具
1、javap
2、Jad:官網(wǎng)(墻裂推薦)
客戶端:
可以在官網(wǎng)下載可執(zhí)行文件,找到對應(yīng)的操作系統(tǒng)的對應(yīng)版本,然后進行安裝使用。
因為我使用的是linux操作系統(tǒng),所以我下載的是Linux版本的工具,這個工具下載好之后會有一個執(zhí)行文件,只要在執(zhí)行文件所在目錄執(zhí)行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼
Eclipse插件:
下載地址在官網(wǎng)下載插件的jar包,然后將jar包放到eclipse的plugins目錄下‘在打開Eclipse,Eclipse-Window-Preferences-Java,此時你會發(fā)現(xiàn)會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。基本配置完畢后,我們可以查看一下class文件的默認打開方式,Eclipse-Window-Preferences-General-Editors-FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼
編譯命令是? javac
首先使用記事本編輯一段簡單的Java代碼
然后保存為HelloWorld.java文件(注意類名需要和文件名保持一致)
3.打開cmd命令行
4.進入HelloWorld.java所在的目錄
5.輸入javac HelloWorld.java命令,輸入完成后按下回車鍵
6.執(zhí)行完javac命令后會看到文件夾下多出了一個HelloWorld.class文件
7.進入HelloWorld.class的目錄下,執(zhí)行java HelloWorld命令,執(zhí)行完成后會看到執(zhí)行結(jié)果
正面javac命令可能編譯Java源程序。
1、首先使用記事本編輯一段簡單的Java代碼。
2、然后保存為HelloWorld.java文件(注意類名需要和文件名保持一致)。
3.打開cmd命令行。
4.進入HelloWorld.java所在的目錄。
javac A.java 執(zhí)行完成之后就可以在A.java的所在目錄生成同名的class文件。要注意1.添加JDK的環(huán)境變量,2.將命令行切換到A.java所在的目錄。