1、表達(dá)不同
成都創(chuàng)新互聯(lián)專注于代縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。代縣網(wǎng)站建設(shè)公司,為代縣等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
源代碼是源代碼。字節(jié)碼稱為字節(jié)碼。它是源程序文件生成的類文件,在通過Java編譯器后使用擴(kuò)展名java生成。它的擴(kuò)展是類。
2、角色是不同的
字節(jié)碼是包含可執(zhí)行程序的二進(jìn)制文件,該可執(zhí)行程序由一系列操作碼/數(shù)據(jù)對(duì)組成。字節(jié)碼是一種中間代碼,它比機(jī)器代碼更抽象,需要翻譯器轉(zhuǎn)換成機(jī)器代碼的中間代碼。無論硬件環(huán)境如何,字節(jié)碼主要用于實(shí)現(xiàn)特定的軟件操作和軟件環(huán)境。字節(jié)碼的實(shí)現(xiàn)是通過編譯器和虛擬機(jī)實(shí)現(xiàn)的。
這是我們根據(jù)Java語言規(guī)范編寫的源程序文件,擴(kuò)展名為java。
3、用法不同
字節(jié)碼是中間狀態(tài)(中間代碼)的二進(jìn)制代碼(文件)。您需要將解釋器轉(zhuǎn)換為機(jī)器代碼。寫入運(yùn)行操作(WORA)實(shí)際上是由字節(jié)碼實(shí)現(xiàn)的。
通常它已經(jīng)編譯,但它與特定的機(jī)器代碼無關(guān)。字節(jié)碼通常不像源代碼那樣可讀,而是一系列編碼數(shù)字常量,引用,指令等。
/*java是一門高級(jí)編程語言,是用來寫程序代碼的。
用java寫的文本(字符串序列)就是源代碼。
計(jì)算機(jī)不能直接執(zhí)行源代碼,必須用一個(gè)叫編譯器的程序(javac.exe)將源代碼
翻譯成字節(jié)碼,然后讓一個(gè)叫解釋器的程序(java.exe)去執(zhí)行字節(jié)碼,即運(yùn)行程序。
下面的就是一個(gè)小程序的源代碼,功能是輸出九九乘法表。
下圖中的Test.class就是這個(gè)源代碼文件翻譯后的由字節(jié)碼組成的文件。
而最下面的那個(gè)黑框就是程序執(zhí)行后的結(jié)果。
java Test就是在執(zhí)行Test.class字節(jié)碼文件,即運(yùn)行這個(gè)程序。
*/
//這下面的就是源代碼
public class Test {
public static void main(String[] args) {
int i,j;
for(i=1;i=9;i++) {
for(j=1;j=i;j++)
System.out.printf("%dx%d=%-4d",j,i,j*i);
System.out.println();
}
}
}
就是未經(jīng)過編譯的java代碼文件,擴(kuò)展名是java的文本類型的文件,可以用記事本打開,但是無法運(yùn)行,必須要用編譯器編譯成class文件才可以運(yùn)行
soucecode是源代碼,也就是后綴名為java的文件bytecode是二進(jìn)制文件,也就是后綴名為class的文件
希望能看看我寫的《java編程那些事兒》一書