北大青鳥課程:JAVA與C/C++的區(qū)別

      很多同學(xué)在學(xué)習(xí)北大青鳥課程時(shí)都會(huì)問(wèn)到,,Java與C/C++作為編程語(yǔ)言的兩大巨頭,他們有什么區(qū)別呢?下面,讓北京北大青鳥學(xué)校學(xué)術(shù)部老師為大家做一個(gè)詳細(xì)的總結(jié):

      Java與C/C++有什么區(qū)別Java中對(duì)內(nèi)存的分配是動(dòng)態(tài)的,它采用面向?qū)ο蟮臋C(jī)制,采用運(yùn)算符new為每個(gè)對(duì)象分配內(nèi)存空間,而且,實(shí)際內(nèi)存還會(huì)隨程序運(yùn)行情況而改變。程序運(yùn)行中,每個(gè)Java系統(tǒng)自動(dòng)對(duì)內(nèi)存進(jìn)行掃描,對(duì)長(zhǎng)期不用的空間作為”垃圾”進(jìn)行收集,使得系統(tǒng)資源得到更充分地利用。按照這種機(jī)制,程序員不必關(guān)注內(nèi)存管理問(wèn)題,這使Java程序的編寫變得簡(jiǎn)單明了,并且避免了了由于內(nèi)存管理方面的差錯(cuò)而導(dǎo)致系統(tǒng)出問(wèn)題。

      而C語(yǔ)言通過(guò)malloc()和free()這兩個(gè)庫(kù)函數(shù)來(lái)分別實(shí)現(xiàn)分配內(nèi)在和釋放內(nèi)存空間的,C++語(yǔ)言中則通過(guò)運(yùn)算符new和delete來(lái)分配和釋放內(nèi)存。在C和C++這仲機(jī)制中,程序員必須非常仔細(xì)地處理內(nèi)存的使用問(wèn)題。一方面,如果對(duì)己釋放的內(nèi)存再作釋放或者對(duì)未曾分配的內(nèi)存作釋放,都會(huì)造成死機(jī);而另一方面,如果對(duì)長(zhǎng)期不用的或不再使用的內(nèi)存不釋放,則會(huì)浪費(fèi)系統(tǒng)資源,甚至因此造成資源枯竭。

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

      Java不用goto語(yǔ)句,而是用try-catch-finally異常處理語(yǔ)句來(lái)代替goto語(yǔ)句處理出錯(cuò)的功能。

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

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

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

      類型轉(zhuǎn)換不同。在C和C++中,可通過(guò)指針進(jìn)行任意的類型轉(zhuǎn)換,常常帶來(lái)不安全性,而在Java中,運(yùn)行時(shí)系統(tǒng)對(duì)對(duì)象的處理要進(jìn)行類型相容性檢查,以防止不安全的轉(zhuǎn)換。(北京北大青鳥學(xué)校)

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

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

      北京北大青鳥學(xué)校提供

      北大青鳥網(wǎng)上報(bào)名
      北大青鳥招生簡(jiǎn)章
      主站蜘蛛池模板: AV无码精品一区二区三区| 国产一区二区三精品久久久无广告 | 无码国产精品一区二区免费| 香蕉久久ac一区二区三区| 欧洲精品无码一区二区三区在线播放| 人妻av综合天堂一区| 熟妇人妻AV无码一区二区三区| AV天堂午夜精品一区二区三区| 久久99国产精品一区二区| 一区二区三区波多野结衣| 午夜在线视频一区二区三区 | 亚洲AV无码一区二区三区DV| 国产在线视频一区二区三区| 亚洲精品精华液一区二区| 日韩精品无码一区二区三区不卡 | 久99精品视频在线观看婷亚洲片国产一区一级在线 | 精品日韩亚洲AV无码一区二区三区| 麻豆视传媒一区二区三区| 成人H动漫精品一区二区| 精品香蕉一区二区三区| 中文字幕精品一区二区2021年| 久久99精品一区二区三区| 国产免费无码一区二区 | 麻豆国产一区二区在线观看| 亚洲一区二区影院| 日韩精品无码免费一区二区三区| 无码乱人伦一区二区亚洲| 久久久久人妻一区精品色| 色狠狠一区二区三区香蕉| 久久人做人爽一区二区三区| 亚洲一区二区三区高清视频| 国产福利一区二区三区在线观看 | 亚洲福利一区二区| 老熟女高潮一区二区三区| 中文字幕一区二区三区人妻少妇| 国产精品美女一区二区三区| 精品在线一区二区| 国产午夜毛片一区二区三区| 国产成人无码精品一区二区三区 | 国产一区二区三区播放心情潘金莲| 欧美成人aaa片一区国产精品 |