武慧東 中北大學(朔州校區)
C語言的原形是ALGOL 60語言簡稱為A語言,1963年劍橋大學將其發展為CPL語言,1967年英國劍橋大學對CPL語言簡化于是產生了BCPL語言。1970年美國的貝爾實驗室以BCPL語言為基礎,設計出了很簡單很接近硬件的B語言。并用B寫出了第一個操作系統。1972-1973年間美國的貝爾實驗室在B語言的基礎上設計出了c語言,C語言既保持了BCPL和B語言的精煉、接近硬件的優點,又克服了它們過于簡單、無數據類型的缺陷。 JAVA語言最初稱為Oak,1990年Sun公司開始致力于開發一種可移植的、跨平臺的語言,該語言開發為了嵌入各種操作系統,能夠編譯各種CPU芯片上的代碼,他們的精心研究和努力促成了Java語言的誕生。1995年由Sun推出的Java Development Kit 1.0a2版本,標志著Java的誕生,它的出現標志著分布式系統的真正到來。
c語言語言簡潔、緊湊使用方便靈活,其中一共有37個關鍵字、9種控制語句,程序書寫新式自由,包含了極少與硬件有關的成分,是一種內核語言,有34種運算符,數據類型涵蓋整型、浮點型、字符型、數組類型、指針類型等。它還具有結構化的控制語句如if-else、while、do-while、switch和for語句。C語言語法限制不太嚴格,允許訪問物理地址。可移植性好,目標代碼質量好,程序效率高。但c語言編寫的程序可能因為操作系統的變化,處理器升級導致程序出現錯誤無法運行。
Java的運算符、語句基本與c語言相類似,它具有簡單、面向對象、平臺無關性、多線程、動態,其中Java語言與其他語言相比最大的優勢在與平臺無關性、因為Java在平臺上又提供了一個運行環境。其中Java的虛擬機把源程序編譯成為字節碼的中間代碼,將字節碼翻譯成虛擬機所在平臺的機器碼,并讓平臺運行該機器碼,這樣實現了Java語言不依賴于平臺的特點,下圖是TIOBE在2018年6月的編程排行榜。

(1) c程序
#include
int main()
{
printf(“Hello,world ”);
return 0;
}
(2) Java程序
public class A{
public static void main (String args[ ]){System.out.println(“Hello,world”);
}
}
程序總是從main函數開始執行,C程序在Visual C++6.0環境下運行結果為Hello,world, Java在JDK 1.8環境下利用dos命令行運行結果也為Hello.world 。不同的是前者在程序中定義主函數,并利用printf語句輸出,后者是先定義了一個主類,利用main方法中的 System.out.println語句輸出。
c語言中不建議使用goto語句,但仍然可以使用,Java使用try塊去代替goto處理異常的功能,而且保留了break、continue程序中,允許了它在循環流程中的跳轉。
Java語言使用Unicode字符集,最多可以識別65536個字符,字符集前128個字符剛好是ASCII碼,它包含了世界上大部分語言的字母表。而在c語言中常使用的是ASCII字符集。因此在Java中作標識符的字符范圍擴大。
Java在保留c語言的整型、字符型、浮點型、又新增加了邏輯類型,同時省去了c語言中的無符號的byte、short、int、和long,也把c語言中最靈活的指針類型替換為引用類型,確保了可以訪問已分配的內存,這讓Java和c有很大的不同。
Java語言和其他面向對象編程一樣,引入了類的概念,用類去定義對象。C語言編寫了一個函數,但沒有面向對象語言那樣去指定行為的主體,即沒法說誰去負責了這個行為,而在java中最核心的內容就是對象,一切主體都圍繞著對象展開,這就使得整個編程思維更符合人的思維模式。
封裝性:面型對象的核心思想是將屬性和對行為封裝在一起,通過抽象,即從具體的實例中形成一般概念。例如面向抽象編程的時候,讓程序設計者把主要的精力放在對程序的設計上,而不必拘泥于程序的實現。
繼承性:繼承體現了一種先進的編程模式,子類可以繼承父類的屬性和行為,即繼承父類所具有數據和數據上的操作,同時又新增了子類特有的屬性和行為。
多態性:一種多態是操作名稱的多態,即多個操作名字具有相同的名字,另外一種是和繼承有關的多態,即指同一個操作被不同對象去調用產生不同的行為。
結語:C作為最基本的編程語言,其表達能力強,結構完善、對以后開發新語言有借鑒作用。但JAVA相比起c來說有更強的實用性能夠向下兼容;有很強的可擴展性、可靠性。最重要的是它的保鮮度很高。由此可見java比c有更多的優勢,是一種優秀的編程語言,隨著JAVA不斷地更新,它將對世界產生更為深遠的影響。