<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > JAVA和C++區(qū)別詳解

          JAVA和C++區(qū)別詳解

          作者: 時間:2011-06-10 來源:網(wǎng)絡(luò) 收藏

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

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

            類和方法(函數(shù))定義

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

            Java中沒有指針

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

            方法(函數(shù))參數(shù)

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

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

            垃圾回收

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

            其他的比較

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

            Java中沒有全局變量。

            Java中沒有枚舉類型。

            Java中沒有typedef。

            Java中沒有結(jié)構(gòu)或聯(lián)合。

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

            Java中沒有多重繼承,但它確實(shí)通過接口恢復(fù)了多重繼承的很多功能。更多關(guān)于接口的細(xì)節(jié)請參見《Java程序設(shè)計與問題解決:基礎(chǔ)篇》的第7章。

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

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

          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          關(guān)鍵詞: 詳解 區(qū)別 JAVA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();