Java和C、C++的異同

C是“面向過程”的程序設(shè)計(jì)語言;C++,C#,java是“面向?qū)ο蟆钡某绦蛟O(shè)計(jì)語言。舉個(gè)例子:比如你想做一個(gè)模型飛機(jī),利用“面向過程”的思想,你所想的就是,先做頭再做身體,再做尾巴。它是一個(gè)比較順著的概念。而如果利用“面向?qū)ο蟆钡乃枷耄闼氲木褪牵阋鲲w機(jī)的話,它有翅膀,頭部,身體,尾巴等各個(gè)部件,你先把各個(gè)部分做好,再考慮怎么把它們連接起來。

C語言特點(diǎn):

作為一種結(jié)構(gòu)化語言,層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù);表現(xiàn)能力和處理能力極強(qiáng)。可以直接訪問內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作;實(shí)現(xiàn)了對(duì)硬件的編程操作,因此既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā);具有效率高,可移植性強(qiáng)等特點(diǎn)。

C#語言特點(diǎn):

微軟開發(fā)的一種編程語言,語法類似Java,幾乎就是從Java的翻版。運(yùn)行原理和Java也類似,也是通過運(yùn)行時(shí)庫(kù)的支持運(yùn)行。不過支持的平臺(tái)還很有限,C#目前只被Windows和Linux支持,Windows下的支持當(dāng)然是由微軟自己開發(fā)的,而Linux下的支持則有MONO支持。實(shí)際上,MONO也是把C#應(yīng)用轉(zhuǎn)化為Java應(yīng)用而已,所以本質(zhì)上,C#仍然只是被微軟自己的操作系統(tǒng)支持。應(yīng)用平臺(tái)受到限制,是它最大的缺點(diǎn)。

C++語言特點(diǎn):

1、在C語言的基礎(chǔ)上進(jìn)行擴(kuò)充和完善,使C++兼容了C語言的面向過程特點(diǎn),又成為了一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言;

2、可以使用抽象數(shù)據(jù)類型進(jìn)行基于對(duì)象的編程;

3、可以使用多繼承、多態(tài)進(jìn)行面向?qū)ο蟮木幊蹋?/p>

4、可以擔(dān)負(fù)起以模版為特征的泛型化編程。

Java語言特點(diǎn):

Java語言是一種完全的面向?qū)ο笳Z言,雖然它的底層(運(yùn)行時(shí)庫(kù))是用C語言開發(fā)的,可是并不依賴于C。因?yàn)镴ava的運(yùn)行是在運(yùn)行時(shí)庫(kù)的支持下進(jìn)行的,所以運(yùn)行效率比起可以更接近底層的C/C++來說效率會(huì)有所影響,不過Java的類庫(kù)采用很好的設(shè)計(jì)理念設(shè)計(jì),非常好用,也非常實(shí)用,已經(jīng)成為業(yè)界的一種標(biāo)準(zhǔn)開發(fā)語言。它的跨平臺(tái)的特性尤其讓很多開發(fā)者歡迎,你只需要開發(fā)一次就能在所有安裝了Java運(yùn)行時(shí)庫(kù)的系統(tǒng)上運(yùn)行。Java發(fā)展了十幾年了,可以應(yīng)用領(lǐng)域非常之廣泛,Web開發(fā)有JSP,J2EE,桌面領(lǐng)域現(xiàn)在有JavaFX。

Objective-C特點(diǎn):

1.Objecive-C屬于Smalltalk學(xué)派,其面向?qū)ο笈cC++面向?qū)ο缶幊塘Φ腟imula 67(一種早期面向?qū)ο笳Z言)學(xué)派不同;

2.Objective-C 是ANSI C的超集,擴(kuò)展了C 語言使它具備面向?qū)ο笤O(shè)計(jì)的能力,例如類、消息‘繼承;同時(shí)在Objective-C的代碼中可以有C和C++語句,它可以調(diào)用C的函數(shù),也可以通過C++對(duì)象訪問方法;

3.Objective-C可以實(shí)現(xiàn)底層系統(tǒng)編程,另一方面可以支持利用動(dòng)態(tài)架構(gòu)進(jìn)行開發(fā)。

Objective-C和C++的區(qū)別就是Objective-C更加靈活而降低了其編譯的要求(這個(gè)降低并不是說編譯就無要求,不會(huì)進(jìn)行類型檢查等),而C++提高編譯的要求,在編譯的過程發(fā)現(xiàn)更多的潛在錯(cuò)誤,在運(yùn)行前改正,同時(shí)會(huì)降低程序的靈活性。因此,在Smalltalk看來正確的程序在Simulr 67那里就無法通過。

Java和C++相同點(diǎn):

都是面向?qū)ο笳Z言,具有面向?qū)ο笏枷耄ǚ庋b、繼承、多態(tài)),而由于C++兼容了C,使得自身成為了帶類C的語言。而Java則是完全面向?qū)ο蟮恼Z言。

不同之處:

Java無法讓編程者通過指針來直接訪問內(nèi)存—無指針,并且自動(dòng)添加了內(nèi)存管理功能,從而有效的防止了C、C++語言中指針操作失誤;但是Java虛擬機(jī)內(nèi)部仍然使用了指針,只是程序員不可使用而已。

C++支持多重繼承,允許多個(gè)父類派生一個(gè)類,但使用復(fù)雜;Java不支持多重繼承,但允許實(shí)現(xiàn)多個(gè)接口,實(shí)現(xiàn)了C++多重繼承的功能,又避免了C++中的多重繼承實(shí)現(xiàn)方式帶來的諸多不便。

Java程序中所有的對(duì)象都是用new操作符建立在內(nèi)存堆上。可以自動(dòng)進(jìn)行無用內(nèi)存回收操作,無需程序員進(jìn)行刪除,而C++需要程序員釋放無用內(nèi)存資源。

Java不支持操作符重載和預(yù)處理功能,而C++有預(yù)編譯功能。

C/C++不支持字符串變量,而Java可以用類對(duì)象(String或者StringBuffer)來實(shí)現(xiàn)對(duì)字符串的操作。

Java中的異常機(jī)制用于捕獲意外事件,增強(qiáng)系統(tǒng)容錯(cuò)能力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,836評(píng)論 6 540
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,275評(píng)論 3 428
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,904評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,633評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,368評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,736評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,740評(píng)論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,919評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,481評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,235評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,427評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,968評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,656評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,055評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,348評(píng)論 1 294
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,160評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,380評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容