新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > JAVA和C++區別詳解

        JAVA和C++區別詳解

        作者: 時間:2011-06-10 來源:網絡 收藏

          java 程序的總體布局是由很多類組成的,每個類都處于一個文件中。如果所有的類都位于同一個目錄(文件夾)中,Java需要使用某個類(文件)的時候,就會自動 地找到它。通過使用import語句,也可以將不同目錄中的類(文件)組合起來。細節請參見《Java程序設計與問題解決:基礎篇》的5.7節(包)。

          在Java中,一個類必須位于一個與類同名、但具有后綴.java的文件中。例如,一個名為MyClass的類必須位于一個名為MyClass.java的文件中。類的編譯版本會被自動地放在一個名為MyClass.class的文件中。

          類和方法(函數)定義

          Java對方法的定義及聲明不加(或者,如某些作者所述,Java對方法的原型和方法的定義不加)。 所有的方法(函數)都只有定義而沒有前向引用。沒有獨立于方法定義的“頭部”或“特征”或“原型”。所有的方法必須都是在某個類中定義的。所有的類定義都 完全是在一個文件中完成的,沒有任何類型的前向引用或接口文件。尤其是,所有的方法定義全都是在它們的類定義中給出的。細節請參見《Java程序設計與問 題解決:基礎篇》的第4章(定義類和方法)。

          Java中沒有指針

          Java中沒有指針類型。但Java是有指針的。實際上,所有的對象都是以指針的方式命名的。不過,指針被稱為 引(reference),會被自動處理。例如,一個String類型的變量中會包含對一個字符串的引用(指針),但沒有String指針類型。細節請參 見《Java程序設計與問題解決:基礎篇》的4.3節。

          方法(函數)參數

          嚴格來講,Java中只有一種參數傳遞機制,即,傳值。但是,實際上,通常認為Java有兩種類型的參數傳遞機 制:一種用于基本類型(比如int、double和char),另一種用于類類型。對基本類型,唯一的參數傳遞機制就是傳值。對類類型,參數傳遞機制也被 稱為傳值,但傳遞的是類對象的引用(指針)。這就允許方法(函數)修改對象中的數據,因此,有些人認為這種機制應該被稱為傳引用機制。這并不符合大多數通 常的傳引用(call-by-reference)定義,但在實現一些簡單任務時,它的表現與傳引用非常相似。細節請參見《Java程序設計與問題解決: 基礎篇》的第4章和第5章。數組

          Java數組與C或C++數組很類似,但它們還是有些的,Java數組的表現更好一些。Java中的數組“知道”它的范 圍。如果a是一個數組,那么實例變量a.length中就包含了一個與數組可以承載的元素個數相等的整數。可以查看Java數組索引是否越界,如果代碼試 圖使用一個越界的數組索引(下標),就會拋出一個異常。細節請參見《Java程序設計與問題解決:基礎篇》的第6章。

          垃圾回收

          Java中的內存管理和垃圾回收是自動進行的。Java使用了new運算符來創建一個類類型的新對象(因此這個過程就是一種內存分配形式),但Java中沒有其他的內存分配形式了。Java中沒有程序員可以用來進行垃圾回收的機制。垃圾回收是自動進行的。

          其他的比較

          Java和C++中的注釋在本質上是完全一樣的。

          Java中沒有全局變量。

          Java中沒有枚舉類型。

          Java中沒有typedef。

          Java中沒有結構或聯合。

          可以像在C++中那樣,在Java中對方法(函數)名進行重載,但在Java中不能對運算符進行重載。

          Java中沒有多重繼承,但它確實通過接口恢復了多重繼承的很多功能。更多關于接口的細節請參見《Java程序設計與問題解決:基礎篇》的第7章。

          Java中沒有模板,但它確實通過泛型恢復了模板的很多功能。

          在Java中,類可以有一個與類具有相同類型參數的構造器,但這個構造器沒什么特殊的地位,不同于C++中的副本構造函數。

        c++相關文章:c++教程



        上一頁 1 2 下一頁

        關鍵詞: 詳解 區別 JAVA

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淳安县| 兰西县| 赣榆县| 博白县| 新巴尔虎右旗| 余江县| 勃利县| 图们市| 西乌珠穆沁旗| 绥化市| 紫阳县| 凤山县| 洪洞县| 边坝县| 衡阳县| 西吉县| 巴东县| 麦盖提县| 菏泽市| 甘谷县| 建湖县| 卫辉市| 曲麻莱县| 五寨县| 闸北区| 浙江省| 全椒县| 如东县| 铜陵市| 西峡县| 高唐县| 合肥市| 上杭县| 天镇县| 本溪| 翁源县| 如皋市| 聂拉木县| 揭东县| 敖汉旗| 昌都县|