各有各的優勢。我不知道怎麽回答。可能樓主是搞C語言的。這些語言各有特色。...
首先要明確壹點,Java是由C++發展而來的,它保留了c++的大部分內容,類似於c++。
但是語法更清晰,更小,更容易學。他對各種編程語言進行了深入細致的研究。
的基礎上,摒棄了其他語言的缺點,從根本上解決了c++的固有缺陷,產生了
壹種全新的完全面向對象的語言。
Java和c++之間的相似之處多於不同之處,但是這兩種語言之間有幾個主要的不同之處,這使得Java更容易使用。
學習,而且編程環境更簡單。
由於篇幅的限制,我們無法在這裏完整地列出差異,只列出比較顯著的差異:
1.指針
Java沒有指針,增加了自動內存管理功能,有效防止
停止C/c++語言中指針操作錯誤導致的系統崩潰,比如指針掛起。
Bi-W操作返回壹個對象的引用,類似於c++中的引用;在c++中,
返回壹個指向對象的指針。在Java中沒有指針,妳不會遇到以下情況
聲明:
我的工作?> my work();
壹個沒有指針的程序是無法訪問不屬於他的內存的,這就不需要c++
中等?壹些常見錯誤,有利於Java程序的安全性。
2.多重遺傳
C++支持多重繼承,這是c++的壹個特性,它允許多個父類發送類。
生壹個班。多重繼承的功能雖然很強,但是使用起來比較復雜,會造成很多問題。
懊惱,編個程序實現不容易。Java不支持多重繼承,但允許壹個
類繼承多個接口(interface),實現了c++多重繼承的功能,避免了c++的問題
很多缺陷。
3.數據類型和類
Java的FJ使用壹個可以和整數集成的布爾類型(bo01ean),它有兩個值:true或false。
Java是壹種完全面向對象的語言,所有的函數和變量都必須是類的壹部分。除了基本數據類型(例如
控件類型浮點型),其余的都作為類對象,包括中和數組。對象將數據(適當的山)和方法。
(方法.d)將它們組合起來,封裝在類中,使每個對象都能實現自己的特性和行為。和c++
允許函數和變量被定義為全局的。
另外,Java取消了C/C++中的結構和組合,使得編譯器更加簡單。
4.自動內存管理
Java程序中的所有對象都是用new運算符構建在堆棧上的,這與c++類似。
新的操作員。下面的語句通過Readkcy類創建壹個對象,然後調用該對象的工作端。
方法:
用“9 dleyme rk
m?work=new Readkey()
m!work.work()g
這個簡單的代碼片段強調了Ja和C 10之間的壹些主要區別。在C 10中,語句如下?
Key "y work在堆棧結構上創建Readkcy的壹個實例。JaM不支持基於堆棧的對象。
所以這條語句創建了壹個名為“ywork”的變量,其中包含了對象Readk。對7的引用。
Javs自動回收無用內存,無需程序員刪除。而C 10必須由程序來解釋。
放內存資源增加程序員的負拋。在Java中,當壹個對象不再被使用時,就沒有內存收集器。
他將被標記為刪除。垃圾收集器在後臺運行,在空閑時間工作。
5.運算符重載
Java不支持運算符重載。運算符重載被認為是C 10的壹個顯著特征,盡管這個類在Java中很大。
PJ在機體上實現了這樣的功能,但操作者重載的便利性仍然喪失了。Java語言不支持操作。
運算符重載是為了讓Java語言盡可能簡單。
6.預處理功能
Java允許預處理。因此,不支持預處理功能。C/C在編譯過程中有壹個預編輯階段。
段,稱為預處理程序。預處理器為研究者提供了方便,但增加了編譯的復雜度。困境
沒有預處理器,但是他提供的介紹語句(I“port”)類似於C 10預處理器的功能。
7.Java不支持默認函數參數,而C 10支持。
在C語言中,代碼被組織在函數中,這些函數可以訪問程序的全局變量。C 10增加了類,提供了類。
算法是壹個與類相連的函數,與Java類方法非常相似。然而,由於C 10仍然是
但是支持C,所以不能阻止C 10開發者使用函數。結果,函數和方法的混合使用使得程序比較。
混亂。
Java沒有函數。作為比C 10更純粹的面向對象語言,Java迫使開發人員將所有的。
常規包含在類中。事實上,通過方法實現例程可以激勵研究人員更好地組織編碼。
8弦
C和C 10不支持字符串變量。在C和C 10程序中,空終止符用來表示字符串的結。
Bundle,在Java中,字符串是通過類對象(strinR和stringBuffer)實現的,這是Java語言。
的核心,用類對象實現字符串有以下優點:
(1)整個系統中構建字符串和訪問字符串元素的方法是壹致的;
(2)JBOY3樂隊陽性字符串類被定義為Java語言的壹部分,而不是附加的擴展;
(3)Java字符串進行運行時空檢查,可以幫助消除壹些運行時錯誤;
(4)字符串可以用“十”串接。
9 "goto語句
“可怕的”goto語句是C和c++的“遺物”,它是該語言技術上合法的壹部分。
語句造成程序結構混亂,不易理解。goto語句應該用來無條件地轉移子程序和多結構點。
支持技術。
鑒於Java由於多種原因不提供goto語句,雖然指定goto為關鍵字,但不支持他用。
使用使程序簡潔易讀。
L0。類型轉換
C和C中有時會出現數據類型的隱式轉換,這就涉及到自動強制類型轉換的問題。例子
比如在C 10中,妳可以給壹個整數變量賦壹個浮點值,去掉它的尾數。Java在C 10中不支持自動強。
如果需要,系統類型轉換必須由程序顯式強制轉換。
11.其他人
(1)破並繼續可以貼上標簽跳出他認定的區塊。比如:
inTlJ
char a;
郊遊;
{ for(I =:I < 5;我十)
for(j = 0;j<3i j++)
{if((a=(char)system.in.read())
休息郊遊;
}}
2)析構函數是void finalize map () {}
Java不保證這個函數會被調用,所以不能依靠它來保證所寫代碼的正常運行。
(3)與packa8e壹起組織相關課程。比如把自己的類組織成packaBe;
pack8e my cla 5s e 55
(4) extaNs用於表示繼承(派生)關系,如;
ne類書?clas 5-打開擴展名?班級?名稱47
(5)虛函數用ab列ra修飾,而不是V加ual。
(6)提供創建完全虛擬的類(接口)的方法;
公共接口intl〔facenamEt//抽象方法)
使用接口可以定義虛擬類的協議,而不用考慮具體的實現。壹個類可以實現多個接口,同壹個接口。
也可以由多個類實現。使用imNemen賄賂來實現該接口,例如:
公共類名implmen比int6rfacena好。
(7)不正常。用於捕獲異常事件並增強系統的容錯能力。
嘗試{//可能生成異常的代碼。
}catch(exceptionType name){
//處理中
其中exceptionType表示異常類型,如Arith。