www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]JAVA和C++區(qū)別詳解

1)java是解釋性語言,java程序在運行時類加載器從類路經(jīng)中加載相關(guān)的類,然后java虛擬機讀取該類文件的字節(jié),執(zhí)行相應(yīng)操作.而C++編譯的 時候?qū)⒊绦蚓幾g成本地機器碼.一般來說java程序執(zhí)行速度要比C++慢10-30倍.即使采用just-in-time compiling (讀取類文件字節(jié)后,編譯成本地機器碼)技術(shù),速度也要比C++慢好多.

  2)java程序有要從網(wǎng)絡(luò)上加載類字節(jié),然后執(zhí)行,這也是導(dǎo)致java運行速度慢的原因.

  3)在程序運行過程中,java虛擬機要檢測數(shù)組是否越界,在C++中則不檢測.

  4)java中所有的對象都創(chuàng)建在堆中,沒有對象被創(chuàng)建在stack中,而C++有的對象和變量是創(chuàng)建在stack中的

  5) java在運行過程中檢測對象的引用是否為空,如果引用指向都空指針,且執(zhí)行某個方法時會拋出空指針異常

  6)java運行時對類型檢測,如果類型不正確會拋出ClassCastException異常.

  7)java的垃圾回收機制較C++由程序員管理內(nèi)存效率更低.

  8) java中的原始數(shù)據(jù)類型在每個操作系統(tǒng)平臺長度都是相同,而C++這些數(shù)據(jù)類型長度是隨操作系統(tǒng)的不同而不同,所以java在不同操作系統(tǒng)上執(zhí)行時有個轉(zhuǎn)化過程.

  9)在java中String 是UNICODE.當(dāng)java要操作一個 ASCII string 時,比C++效率上相對要低一些.

  10)java中采用的是動態(tài)鏈接

  以下內(nèi)容摘自《Java程序設(shè)計與問題解決:基礎(chǔ)篇》附錄

  Java和C++看起來很類似,但兩者之間的差別要多于粗略地查看這兩種語言時所認(rèn)為的那樣。我們不會對所有的區(qū)別進行描述,但為了幫助從C++(或C)向Java過渡,會對兩者的一些相似及不同之處進行介紹。

  基本類型

  Java中的基本類型基本上和C及C++中的一樣(int、short、long、float、double和 char),但Java添加了byte和boolean類型。(近期的C++版本中也有了bool類型,對應(yīng)于Java中的boolean類 型。)Java中沒有名為long double的類型。與C和C++不同,在Java中,用字節(jié)表示的某些特定基本類型值的大小是完全確定的,與實現(xiàn)無關(guān)。細(xì)節(jié)請參見《Java程序設(shè)計與 問題解決:基礎(chǔ)篇》的第2章。

  字符串

  與C和C++的某些版本不同,Java中的字符串不是特定類型的字符數(shù)組。在Java中有一個預(yù)定義的String類 型。(對String類的討論是從《Java程序設(shè)計與問題解決:基礎(chǔ)篇》的第2章開始的。)Java的String類與C++近期版本中的string 類有些類似。

   控制流程

 

  Java中的控制結(jié)構(gòu)(if-else、switch、while、do-while和for)與C和C++一樣。但是, 有一些差別會影響到對Java中控制結(jié)構(gòu)的使用。具體來說,Java中沒有逗號運算符,Java中的boolean類型既不是一個數(shù)字類型,也無法將其值 強制轉(zhuǎn)換為一個數(shù)字類型,而且賦值運算符在Java中比在C和C++中表現(xiàn)得更好一些。

  Java中沒有逗號運算符。但是,Java中的for語句定義為可以使用逗號,就像下列代碼這樣:

  for (n = 1, product = 1; n <= 10; n++)

  product = product * n;

  但這個“逗號運算符”只能在for語句中使用。

  在Java中,boolean類型有兩個值:true和false,無法將這兩個值轉(zhuǎn)換成數(shù)字值,用強制類型轉(zhuǎn)換也不行。

  C和C++中的一個典型錯誤就是用=取代了==,就像下列代碼這樣:

  if ( n = 42 )

  ?

  在C和C++ 中,表達式n=42會返回值42,根據(jù)所用的C或C++版本的不同,這個表達式可以是或?qū)⒁晦D(zhuǎn)換成一個布爾值。在Java中,n=42也會返回值42, 但42不是boolean類型的,它也不會被轉(zhuǎn)換成boolean類型。因此,在Java中,這種錯誤會引發(fā)一個編譯器錯誤消息。

  相等性測試

  在Java中測試一個類類型對象的相等性是很麻煩的。對基本類型的值來說,運算符==會如你所愿地對相等性進行測試。但 是,用==對兩個類類型的對象進行比較時,測試的是對象是否處于同一個內(nèi)存單元,而不是它們是否具有相同的數(shù)據(jù)。Java類通常會定義一個名為 equals的方法來測試兩個對象是否是我們直覺意義上的相等。在Java中不能重載==運算符(或任何運算符)。

  main方法(函數(shù))及其他方法

  在Java中,函數(shù)被稱為方法(method)。main方法(函數(shù))在Java中的功能與在C和C++中一樣。在Java中,main方法頭部通常如下所示。

  public static void main(String[] args)

  在Java中,所有的方法—實際上,任意類型的所有代碼—都是在類中定義的。

  文件及包含文件

  Java中沒有#inlude指示。Java中確實有一個import語句,可以導(dǎo)入一整個包(庫)以供

  在一個類(或文件)中使用。[!--empirenews.page--]

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

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

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

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

  Java中沒有指針

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

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

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

 

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

  垃圾回收

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

  其他的比較

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

  Java中沒有全局變量。

  Java中沒有枚舉類型。

  Java中沒有typedef。

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

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

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

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

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

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉