国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

程序設(shè)計(jì)語言c與Java對比分析

2018-10-19 09:29武慧東中北大學(xué)朔州校區(qū)
數(shù)碼世界 2018年9期
關(guān)鍵詞:數(shù)據(jù)類型多態(tài)C語言

武慧東 中北大學(xué)(朔州校區(qū))

C語言的原形是ALGOL 60語言簡稱為A語言,1963年劍橋大學(xué)將其發(fā)展為CPL語言,1967年英國劍橋大學(xué)對CPL語言簡化于是產(chǎn)生了BCPL語言。1970年美國的貝爾實(shí)驗(yàn)室以BCPL語言為基礎(chǔ),設(shè)計(jì)出了很簡單很接近硬件的B語言。并用B寫出了第一個(gè)操作系統(tǒng)。1972-1973年間美國的貝爾實(shí)驗(yàn)室在B語言的基礎(chǔ)上設(shè)計(jì)出了c語言,C語言既保持了BCPL和B語言的精煉、接近硬件的優(yōu)點(diǎn),又克服了它們過于簡單、無數(shù)據(jù)類型的缺陷。 JAVA語言最初稱為Oak,1990年Sun公司開始致力于開發(fā)一種可移植的、跨平臺的語言,該語言開發(fā)為了嵌入各種操作系統(tǒng),能夠編譯各種CPU芯片上的代碼,他們的精心研究和努力促成了Java語言的誕生。1995年由Sun推出的Java Development Kit 1.0a2版本,標(biāo)志著Java的誕生,它的出現(xiàn)標(biāo)志著分布式系統(tǒng)的真正到來。

1 C與Java的特點(diǎn)

c語言語言簡潔、緊湊使用方便靈活,其中一共有37個(gè)關(guān)鍵字、9種控制語句,程序書寫新式自由,包含了極少與硬件有關(guān)的成分,是一種內(nèi)核語言,有34種運(yùn)算符,數(shù)據(jù)類型涵蓋整型、浮點(diǎn)型、字符型、數(shù)組類型、指針類型等。它還具有結(jié)構(gòu)化的控制語句如if-else、while、do-while、switch和for語句。C語言語法限制不太嚴(yán)格,允許訪問物理地址??梢浦残院?,目標(biāo)代碼質(zhì)量好,程序效率高。但c語言編寫的程序可能因?yàn)椴僮飨到y(tǒng)的變化,處理器升級導(dǎo)致程序出現(xiàn)錯(cuò)誤無法運(yùn)行。

Java的運(yùn)算符、語句基本與c語言相類似,它具有簡單、面向?qū)ο?、平臺無關(guān)性、多線程、動(dòng)態(tài),其中Java語言與其他語言相比最大的優(yōu)勢在與平臺無關(guān)性、因?yàn)镴ava在平臺上又提供了一個(gè)運(yùn)行環(huán)境。其中Java的虛擬機(jī)把源程序編譯成為字節(jié)碼的中間代碼,將字節(jié)碼翻譯成虛擬機(jī)所在平臺的機(jī)器碼,并讓平臺運(yùn)行該機(jī)器碼,這樣實(shí)現(xiàn)了Java語言不依賴于平臺的特點(diǎn),下圖是TIOBE在2018年6月的編程排行榜。

2 C與Java的語言程序舉例

(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函數(shù)開始執(zhí)行,C程序在Visual C++6.0環(huán)境下運(yùn)行結(jié)果為Hello,world, Java在JDK 1.8環(huán)境下利用dos命令行運(yùn)行結(jié)果也為Hello.world 。不同的是前者在程序中定義主函數(shù),并利用printf語句輸出,后者是先定義了一個(gè)主類,利用main方法中的 System.out.println語句輸出。

3 Java語言與c語言上語法的差異舉例

3.1 goto語句的完全拋棄

c語言中不建議使用goto語句,但仍然可以使用,Java使用try塊去代替goto處理異常的功能,而且保留了break、continue程序中,允許了它在循環(huán)流程中的跳轉(zhuǎn)。

3.2 字符集的擴(kuò)大

Java語言使用Unicode字符集,最多可以識別65536個(gè)字符,字符集前128個(gè)字符剛好是ASCII碼,它包含了世界上大部分語言的字母表。而在c語言中常使用的是ASCII字符集。因此在Java中作標(biāo)識符的字符范圍擴(kuò)大。

3.3 數(shù)據(jù)類型的改變

Java在保留c語言的整型、字符型、浮點(diǎn)型、又新增加了邏輯類型,同時(shí)省去了c語言中的無符號的byte、short、int、和long,也把c語言中最靈活的指針類型替換為引用類型,確保了可以訪問已分配的內(nèi)存,這讓Java和c有很大的不同。

3.4 編程思想的改變

Java語言和其他面向?qū)ο缶幊桃粯樱肓祟惖母拍?,用類去定義對象。C語言編寫了一個(gè)函數(shù),但沒有面向?qū)ο笳Z言那樣去指定行為的主體,即沒法說誰去負(fù)責(zé)了這個(gè)行為,而在java中最核心的內(nèi)容就是對象,一切主體都圍繞著對象展開,這就使得整個(gè)編程思維更符合人的思維模式。

4 Java語言體現(xiàn)的優(yōu)勢

封裝性:面型對象的核心思想是將屬性和對行為封裝在一起,通過抽象,即從具體的實(shí)例中形成一般概念。例如面向抽象編程的時(shí)候,讓程序設(shè)計(jì)者把主要的精力放在對程序的設(shè)計(jì)上,而不必拘泥于程序的實(shí)現(xiàn)。

繼承性:繼承體現(xiàn)了一種先進(jìn)的編程模式,子類可以繼承父類的屬性和行為,即繼承父類所具有數(shù)據(jù)和數(shù)據(jù)上的操作,同時(shí)又新增了子類特有的屬性和行為。

多態(tài)性:一種多態(tài)是操作名稱的多態(tài),即多個(gè)操作名字具有相同的名字,另外一種是和繼承有關(guān)的多態(tài),即指同一個(gè)操作被不同對象去調(diào)用產(chǎn)生不同的行為。

結(jié)語:C作為最基本的編程語言,其表達(dá)能力強(qiáng),結(jié)構(gòu)完善、對以后開發(fā)新語言有借鑒作用。但JAVA相比起c來說有更強(qiáng)的實(shí)用性能夠向下兼容;有很強(qiáng)的可擴(kuò)展性、可靠性。最重要的是它的保鮮度很高。由此可見java比c有更多的優(yōu)勢,是一種優(yōu)秀的編程語言,隨著JAVA不斷地更新,它將對世界產(chǎn)生更為深遠(yuǎn)的影響。

猜你喜歡
數(shù)據(jù)類型多態(tài)C語言
互聯(lián)網(wǎng)+教育背景下的C語言程序設(shè)計(jì)教學(xué)改革探究
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
51單片機(jī)C語言入門方法
面向?qū)ο蟪绦蛟O(shè)計(jì)中多態(tài)性探討
Java語言中方法重載與方法覆蓋的異同
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》中引用類型的教學(xué)實(shí)踐
基于SeisBase模型的地震勘探成果數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
線上眾籌產(chǎn)品的特征分析與研究