<label id="2a06w"><tt id="2a06w"></tt></label><label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label><menu id="2a06w"></menu>
  • <dfn id="2a06w"><var id="2a06w"><label id="2a06w"></label></var></dfn>
    <sup id="2a06w"><button id="2a06w"><em id="2a06w"></em></button></sup>
    <dfn id="2a06w"><var id="2a06w"></var></dfn>
    <dfn id="2a06w"></dfn>
  • <dfn id="2a06w"><code id="2a06w"><ins id="2a06w"></ins></code></dfn>
  • <small id="2a06w"><samp id="2a06w"></samp></small>
  • <dfn id="2a06w"><table id="2a06w"><center id="2a06w"></center></table></dfn>
    <label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label>
    <strike id="2a06w"><form id="2a06w"></form></strike>
    <menu id="2a06w"><tt id="2a06w"></tt></menu>

    將想法與焦點(diǎn)和您一起共享

    Java與C/C++的差異發(fā)布者:本站     時(shí)間:2020-05-06 15:05:08

    熟悉C語言和C++語言的讀者一定想搞清楚這個(gè)問題,實(shí)際上,Java確實(shí)是從C語言和C++語言繼承了許多成份,甚至可以將Java看成是類C語言發(fā)展和衍生的產(chǎn)物.比如Java語言的變量聲明,操作符形式,參數(shù)傳遞,流程控制等方面和C語言,C++語言完全相同.盡管如此,Java和C語言,C++語言又有許多差別,主要表現(xiàn)在如下幾個(gè)方面:
     

     

    (1) Java中對內(nèi)存的分配是動(dòng)態(tài)的,它采用面向?qū)ο蟮臋C(jī)制,采用運(yùn)算符new為每個(gè)對象分配內(nèi)存空間,而且,實(shí)際內(nèi)存還會隨程序運(yùn)行情況而改變.程序運(yùn)行中,每個(gè), Java系統(tǒng)自動(dòng)對內(nèi)存進(jìn)行掃描,對長期不用的空間作為”垃圾”進(jìn)行收集,使得系統(tǒng)資源得到更充分地利用.按照這種機(jī)制,程序員不必關(guān)注內(nèi)存管理問題,這使Java程序的編寫變得簡單明了,并且避免了了由于內(nèi)存管理方面的差錯(cuò)而導(dǎo)致系統(tǒng)出問題.而C語言通過malloc()和free()這兩個(gè)庫函數(shù)來分別實(shí)現(xiàn)分配內(nèi)在和釋放內(nèi)存空間的,C++語言中則通過運(yùn)算符new和delete來分配和釋放內(nèi)存.在C和C++這仲機(jī)制中,程序員必須非常仔細(xì)地處理內(nèi)存的使用問題.一方面,如果對己釋放的內(nèi)存再作釋放或者對未曾分配的內(nèi)存作釋放,都會造成死機(jī);而另一方面,如果對長期不用的或不再使用的內(nèi)存不釋放,則會浪費(fèi)系統(tǒng)資源,甚至因此造成資源枯竭.
     

     

    (2) Java不在所有類之外定義全局變量,而是在某個(gè)類中定義一種公用靜態(tài)的變量來完成全局變量的功能.
     

     

    (3) Java不用goto語句,而是用try-catch-finally異常處理語句來代替goto語句處理出錯(cuò)的功能.
     

     

    (4) Java不支持頭文件,面C和C++語言中都用頭文件來定義類的原型,全局變量,庫函數(shù)等,這種采用頭文件的結(jié)構(gòu)使得系統(tǒng)的運(yùn)行維護(hù)相當(dāng)繁雜.
     

     

    (5) Java不支持宏定義,而是使用關(guān)鍵字final來定義常量,在C++中則采用宏定義來實(shí)現(xiàn)常量定義,這不得于程序的可讀性.
     

     

    (6) Java對每種數(shù)據(jù)類型都分配固定長度.比如,在Java中,int類型總是32位的,而在C和C++中,對于不同的平臺,同一個(gè)數(shù)據(jù)類型分配不同的字節(jié)數(shù),同樣是int類型,在PC機(jī)中為二字節(jié)即16位,而在VAX-11中,則為32位.這使得C語言造成不可移植性,而Java則具有跨平臺性(平臺無關(guān)性).
     

     

    (7) 類型轉(zhuǎn)換不同.在C和C++中,可通過指針進(jìn)行任意的類型轉(zhuǎn)換,常常帶來不安全性,而在Java中,運(yùn)行時(shí)系統(tǒng)對對象的處理要進(jìn)行類型相容性檢查,以防止不安全的轉(zhuǎn)換.
     

     

    (8) 結(jié)構(gòu)和聯(lián)合的處理.在C和C++中,結(jié)構(gòu)和聯(lián)合的所有成員均為公有,這就帶來了安全性問題,而在Java中根本就不包含結(jié)構(gòu)和聯(lián)合,所有的內(nèi)容都封裝在類里面.
     

     

    (9) Java不再使用指針.指針是C和C++中最靈活,也最容易產(chǎn)生錯(cuò)誤的數(shù)據(jù)類型.由指針?biāo)M(jìn)行的內(nèi)存地址操作常會造成不可預(yù)知的錯(cuò)誤,同時(shí)通過指針對某個(gè)內(nèi)存地址進(jìn)行顯式類型轉(zhuǎn)換后,可以訪問一個(gè)C++中的私有成員,從而破壞安全性.而Java對指針進(jìn)行完全地控制,程序員不能直接進(jìn)行任何指針操作.



    選擇我們,優(yōu)質(zhì)服務(wù),不容錯(cuò)過
    1. 優(yōu)秀的網(wǎng)絡(luò)資源,強(qiáng)大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
    2. 15年上海網(wǎng)站建設(shè)經(jīng)驗(yàn),優(yōu)秀的技術(shù)和設(shè)計(jì)水平,更放心
    3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
    ------------------------------------------------------------
    24小時(shí)聯(lián)系電話:021-58370032
    99人妻中文字幕视频在,亚洲无码视频在线免费看,久久国产乱子伦免费精品,日本中文字幕色视频网站
    <label id="2a06w"><tt id="2a06w"></tt></label><label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label><menu id="2a06w"></menu>
  • <dfn id="2a06w"><var id="2a06w"><label id="2a06w"></label></var></dfn>
    <sup id="2a06w"><button id="2a06w"><em id="2a06w"></em></button></sup>
    <dfn id="2a06w"><var id="2a06w"></var></dfn>
    <dfn id="2a06w"></dfn>
  • <dfn id="2a06w"><code id="2a06w"><ins id="2a06w"></ins></code></dfn>
  • <small id="2a06w"><samp id="2a06w"></samp></small>
  • <dfn id="2a06w"><table id="2a06w"><center id="2a06w"></center></table></dfn>
    <label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label>
    <strike id="2a06w"><form id="2a06w"></form></strike>
    <menu id="2a06w"><tt id="2a06w"></tt></menu>