查看: 2051|回復: 0
打印 上一主題 下一主題

[培訓] 粵嵌Java教程 Java和C語(yǔ)言的差異

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2018-7-17 13:48:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  Java從C語(yǔ)言和C++語(yǔ)言繼承了許多成份,甚至可以將Java看成是類(lèi)C語(yǔ)言發(fā)展和衍生的產(chǎn)物。盡管如此,Java和C語(yǔ)言,C++語(yǔ)言又有許多差別,粵嵌Java教程總結Java與C語(yǔ)言的差異主要表現在如下幾個(gè)方面:
  (1) Java中對內存的分配是動(dòng)態(tài)的,它采用面向對象的機制,采用運算符new為每個(gè)對象分配內存空間,而且,實(shí)際內存還會(huì )隨程序運行情況而改變。程序運行中 Java系統自動(dòng)對內存進(jìn)行掃描,對長(cháng)期不用的空間作為”垃圾”進(jìn)行收集,使得系統資源得到更充分地利用.按照這種機制,程序員不必關(guān)注內存管理問(wèn)題,這使Java程序的編寫(xiě)變得簡(jiǎn)單明了,并且避免了由于內存管理方面的差錯而導致系統出問(wèn)題。而C語(yǔ)言通過(guò)malloc()和free()這兩個(gè)庫函數來(lái)分別實(shí)現分配內存和釋放內存空間的,C++語(yǔ)言中則通過(guò)運算符new和delete來(lái)分配和釋放內存。在C和C++這種機制中,程序員必須非常仔細地處理內存的使用問(wèn)題。一方面,如果對己釋放的內存再作釋放或者對未曾分配的內存作釋放,都會(huì )造成死機;而另一方面,如果對長(cháng)期不用的或不再使用的內存不釋放,則會(huì )浪費系統資源,甚至因此造成資源枯竭。
  (2) Java教程不在所有類(lèi)之外定義全局變量,而是在某個(gè)類(lèi)中定義一種公用靜態(tài)的變量來(lái)完成全局變量的功能。
  (3) Java不用goto語(yǔ)句,而是用try-catch-finally異常處理語(yǔ)句來(lái)代替goto語(yǔ)句處理出錯的功能。
  (4) Java不支持頭文件,而C和C++語(yǔ)言中都用頭文件來(lái)定義類(lèi)的原型,全局變量,庫函數等,這種采用頭文件的結構使得系統的運行維護相當繁雜。
  (5) Java不支持宏定義,而是使用關(guān)鍵字final來(lái)定義常量,在C++中則采用宏定義來(lái)實(shí)現常量定義,這不利于程序的可讀性。   
      (6) Java對每種數據類(lèi)型都分配固定長(cháng)度。比如,在Java中,int類(lèi)型總是32位的,而在C和C++中,對于不同的平臺,同一個(gè)數據類(lèi)型分配不同的字節數,同樣是int類(lèi)型,在PC機中為二字節即16位,而在VAX-11中,則為32位.這使得C語(yǔ)言造成不可移植性,而Java則具有跨平臺性。
  (7) 類(lèi)型轉換不同。在C和C++中,可通過(guò)指針進(jìn)行任意的類(lèi)型轉換,常常帶來(lái)不安全性,而在Java中,運行時(shí)系統對對象的處理要進(jìn)行類(lèi)型相容性檢查,以防止不安全的轉換。
  (8) 結構和聯(lián)合的處理。在C和C++中,結構和聯(lián)合的所有成員均為公有,這就帶來(lái)了安全性問(wèn)題,而在Java中根本就不包含結構和聯(lián)合,所有的內容都封裝在類(lèi)里面。
  (9) Java不再使用指針。指針是C和C++中最靈活,也最容易產(chǎn)生錯誤的數據類(lèi)型.由指針所進(jìn)行的內存地址操作常會(huì )造成不可預知的錯誤,同時(shí)通過(guò)指針對某個(gè)內存地址進(jìn)行顯式類(lèi)型轉換后,可以訪(fǎng)問(wèn)一個(gè)C++中的私有成員,從而破壞安全性。而Java對指針進(jìn)行完全地控制,程序員不能直接進(jìn)行任何指針操作。
  (10)避免平臺依賴(lài)。Java語(yǔ)言編寫(xiě)的類(lèi)庫可以在其它平臺的Java應用程序中使用,而不像C++語(yǔ)言必須依賴(lài)于Windows平臺。     
   (11)在B/S開(kāi)發(fā)方面,Java要遠遠優(yōu)于C++。
  以上11點(diǎn)就是Java和C語(yǔ)言的差異,編程語(yǔ)言是輔助軟件開(kāi)發(fā)的,本身并沒(méi)有優(yōu)劣之分,只是在不同環(huán)境下需要用到不同的語(yǔ)言。因此,粵嵌Java教程建議大家在Java入門(mén)階段要重點(diǎn)理解Java的基礎內容,并且不要與C語(yǔ)言混淆。Tel/WX:133--52--86--80--59

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页