Java與C/C++有什麼區別
Java與C/C++作爲編程語言的兩大巨頭,他們有什麼區別呢?在概念上在實際的學習和應用中java和C/C++又有什麼不同呢?這是所有熟悉C語言和C++語言的讀者都想搞清楚的問題,筆者做一下總結:
Java與C/C++有什麼區別
(01)Java中對內存的分配是動態的,它採用面向對象的機制,採用運算符new爲每個對象分配內存空間,而且,實際內存還會隨程序執行情況而改變.程序執行中,每個, Java系統自動對內存進行掃描,對長期不用的空間作爲”垃圾”進行收集,使得系統資源得到更充分地利用.按照這種機制,程序員不必關注內存管理問題,這使Java程序的編寫變得簡單明瞭,並且避免了了由於內存管理方面的差錯而導致系統出問題.而C語言透過malloc()和free()這兩個庫函數來分別實現分配內在和釋放內存空間的,C++語言中則透過運算符new和delete來分配和釋放內存.在C和C++這仲機制中,程序員必須非常仔細地處理內存的使用問題.一方面,如果對己釋放的內存再作釋放或者對未曾分配的內存作釋放,都會造成死機;而另一方面,如果對長期不用的或不再使用的內存不釋放,則會浪費系統資源,甚至因此造成資源枯竭.
(02)Java不在所有類之外定義全局變量,而是在某個類中定義一種公用靜態的變量來完成全局變量的功能.
(03)Java不用goto語句,而是用try-catch-finally異常處理語句來代替goto語句處理出錯的功能.
(04)Java不支援頭檔案,面C和C++語言中都用頭檔案來定義類的原型,全局變量,庫函數等,這種採用頭檔案的結構使得系統的執行維護相當繁雜.
(05)Java不支援宏定義,而是使用關鍵字final來定義常量,在C++中則採用宏定義來實現常量定義,這不得於程序的可讀性.
(06)Java對每種數據類型都分配固定長度.比如,在Java中,int類型總是32位的,而在C和C++中,對於不同的平臺,同一個數據類型分配不同的字節數,同樣是int類型,在PC機中爲二字節即16位,而在VAX-11中,則爲32位.這使得C語言造成不可移植性,而Java則具有跨平臺性(平臺無關性).
(07)類型轉換不同.在C和C++中,可透過指針進行任意的類型轉換,常常帶來不安全性,而在Java中,執行時系統對對象的處理要進行類型相容性檢查,以防止不安全的轉換.
(08)結構和聯合的處理.在C和C++中,結構和聯合的所有成員均爲公有,這就帶來了安全性問題,而在Java中根本就不包含結構和聯合,所有的內容都封裝在類裏面
(09)Java不再使用指針.指針是C和C++中最靈活,也最容易產生錯誤的數據類型.由指針所進行的內存地址操作常會造成不可預知的錯誤,同時透過指針對某個內存地址進行顯式類型轉換後,可以訪問一個C++中的私有成員,從而破壞安全性.而Java對指針進行完全地控制,程序員不能直接進行任何指針操作.
-
Wps表格的基本操作及簡單數據計算
在日常生活或辦公中,我們常常需要製作表格並對錶格做一些計算,而Wps表格爲我們製作表格和計算數據提供了非常便利的條件,今天小編就來爲大家講解一下Wps表格的基本操作及簡單數據計算。例如,我們要製作下面的表格:操作方法(01)輸入文字內容。(02)將表題文字居中。選中A1...
-
stdole32.tlb丟失或損壞怎麼辦
Excel是我們辦公時候最常用的辦公軟件之一,但是有些win7專業版用戶在使用Excel的過程中出現了“某個對象程序庫丟失或損壞”的警告,這究竟是怎麼回事呢?雖然有這個錯誤提示,但是Excel大部分功能還是可以正常使用的。下面由小編給大家介紹一下丟失或損壞的解決方法...
-
Pr怎樣匯出清晰視頻
在PR上編輯過的視頻怎麼匯出才能得到清晰的畫質呢?下面就來告訴大家如何操作。操作方法(01)開啟PR,找到選單欄的“檔案”,選擇“新建”,再找到“序列”。(02)這個時候會進行源檔案設定,若是想要高清視頻,就選擇“digitalSLR1080P“。(03)然後就可以編輯視頻了,編輯完成後再...
-
如何檢視網絡計算機和設備?
現在我們的電腦,辦公的基本都是與單位局域網相連的,這是爲了方便公司內部數據的傳輸與查詢。因此在工作的網絡中除了知道自己的電腦外,也想知道其它的電腦工作狀態。那麼如何檢視呢?現在和大家分享一下實際操作。操作方法(01)點擊電腦桌面左下角的開始圖標,進入電腦主...