在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言與Java之間的主要區別有哪些

Wildesbeast ? 來源:今日頭條 ? 作者:編碼老將 ? 2020-02-24 14:31 ? 次閱讀

本文主要為C#開發人員了解Java提供一些基礎。

Java中缺少C#的功能

C#包含更多原始類型和捕獲算術異常的功能。

包括大量的Java注釋便利,其中許多,例如運算符重載和用戶定義的強制轉換,已經為C ++程序員社區所熟悉。

事件處理是“一流的公民”,它是語言本身的一部分。

允許定義“結構”,這些結構類似于類,但可以在堆棧上分配(與C#和Java中類的實例不同)。

C#將屬性作為語言語法的一部分來實現。

C#允許switch語句對進行操作string。

C#允許提供閉包功能的匿名方法。

C#允許迭代器通過功能樣式yield關鍵字使用協程。

C#支持輸出參數,幫助返回多個值,這是C ++和SQL共享的功能。

C#具有別名空間的能力。

C#具有“顯式成員實現”,該類允許類從其自己的類方法中單獨實現接口的方法。這也允許它實現兩個不同的接口,碰巧具有相同名稱的方法。接口的方法不必是public; 它們只能通過該界面進行訪問。

C#提供了與COM的集成。

按照C和C ++的示例,C#允許按引用調用原始類型和引用類型。

C#中缺少Java的功能

Java的strictfp關鍵字保證浮點運算的結果在各個平臺之間保持相同。

Java支持檢查異常,以更好地實施錯誤捕獲和處理。

語言之間的哲學差異

Java中沒有無符號的原始數字類型。盡管普遍認為在代碼中混合有符號和無符號變量是不好的,但是Java缺乏對無符號數字類型的支持,這使其在某種程度上不適合低級編程

C#不包括檢查的異常。有人會認為檢查異常對于良好的編程習慣非常有幫助。其他人,包括首席C#語言架構師Anders Hejlsberg,認為它們在某種程度上是Java的實驗,而且還沒有證明它們是值得的。

C#的命名空間與C ++中的命名空間更為相似。與Java不同,名稱空間不指定源文件的位置。(實際上,對于Java源文件位置來說,對應它的包目錄結構并不是絕對必要的。)

C#包括委托,而Java不包括。有人認為委托使方法調用模型復雜化,因為委托是通過反射來處理的,這通常很慢。另一方面,它們可以通過消除聲明新的(可能是匿名的)類以掛接到事件的需要,從而簡化代碼。

Java要求源文件名必須與其中的唯一public類匹配,而C#允許public同一文件中有多個類。

C#允許使用指針,某些語言設計者認為這是不安全的,但是某些語言功能試圖確保不會意外濫用此功能。指針還極大地使諸如Java的RMI(遠程方法調用)之類的技術復雜化,在該技術中,可以在一臺完全獨立的計算機上運行的程序中引用駐留在一臺計算機上的程序對象。一些人推測,Java中缺少內存指針(被對象引用的更抽象的概念所取代)是網格計算時代的頭號功臣,網格應用程序可以將單個應用程序分布在許多物理硬件上。

C#支持goto關鍵字。有時這可能很有用,但是通常建議使用結構化的控制流方法。

C#具有真正的多維數組,相對Java可用的數組(C#稱為鋸齒狀數組)。多維數組始終是矩形的(在2D情況下,或對于更大的維數類似),而數組可以存儲各種長度的行(同樣在2D情況下)。如果內存是一個瓶頸(只有一個內存引用而不是兩個內存引用,則矩形陣列可能會加快訪問速度);如果內存不完整但成本高昂,則鋸齒狀數組可以節省內存(每行一個指針的代價) 。矩形數組還消除了為每行顯式分配內存的需要。

Java不包括運算符重載,因為濫用運算符重載可能導致難以理解和調試的代碼。C#允許操作符重載,如果謹慎使用,則可以使代碼更簡潔,更易讀。Java缺乏重載使其在某種程度上不適合某些數學程序。相反,.NET的數字類型不與add / subtract / etc共享公共接口或超類方法,限制了數值庫的靈活性。

默認情況下,C#中的方法是非虛擬的。但是,在Java中,默認情況下方法是虛擬的。虛方法保證將調用對象的最終重載方法,該方法由運行時確定。在調用或編寫任何虛擬方法時,您始終必須牢記這一點!如果該方法聲明為非虛擬方法,則調用的方法將由編譯器確定。這是Java和.NET平臺的設計者之間的主要哲學差異。

Java 1.5的泛型使用類型擦除。當Java源代碼編譯為字節碼時,有關泛型類型的信息將會丟失。.NET 2.0的泛型在編譯后得以保留,因為從.NET公共語言運行時2.0版(簡稱CLR)開始,對泛型的支持。Java的方法允許Java 1.5二進制文件在1.4 JRE中運行,但要付出額外的運行時類型檢查的代價。

C#是由ECMA和ISO標準定義的,而Java是專有的,盡管在很大程度上是通過開放社區流程進行控制的。

C#API完全由Microsoft控制,而Java API通過開放的社區流程進行管理。

.NET運行時允許托管和非托管代碼,從而實現Java的純托管代碼環境中不存在的某些類型的錯誤,但也可以與現有代碼進行交互。

問題:java在默認中,所有方法都是虛方法,這意味著什么?

答:這意味著,java中的所有對象,基本上都有了動態代理的潛在可能

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2976

    瀏覽量

    105211
  • C語言
    +關注

    關注

    180

    文章

    7615

    瀏覽量

    137827
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73887
收藏 人收藏

    評論

    相關推薦

    DSP C語言與主機C語言主要區別

    DSP C語言與主機C語言主要區別1)DSP的C語言
    發表于 11-03 15:14

    AVR單片機與51單片機的主要區別有那些啊?

    本帖最后由 eehome 于 2013-1-5 10:04 編輯 AVR單片機與51單片機的主要區別有那些啊?(勞請高手將得能應用領域、編程控制及設計等方面詳細點兒,謝謝啦!)
    發表于 07-16 22:51

    請問TMS570與RM48X的主要區別有哪些?

    本帖最后由 一只耳朵怪 于 2018-5-22 14:43 編輯 問下TMS570與RM48X的主要區別有哪些?
    發表于 05-22 01:45

    請問DSP的C語言同主機C語言之間區別是什么?

    DSP的C語言同主機C語言主要區別
    發表于 09-17 05:55

    藍牙信標和藍牙標簽之間主要區別在哪里?

    什么是藍牙信標?什么又是藍牙標簽?藍牙信標和藍牙標簽之間主要區別在哪里?
    發表于 06-26 06:51

    HDL語言中的unsigned與signed的主要區別是什么

    unsigned是什么意思?signed是什么意思?HDL語言中的unsigned與signed的主要區別是什么?
    發表于 09-24 07:02

    C語言JAVA區別在哪

    一、前言C語言屬于匯編型語言。是區別于解釋型語言的(如JAVA)做個比較編譯型
    發表于 12-09 08:20

    javac之間的數據交互

    最近作一個tiemsten數據庫的項目,用到了jni技術。在這個項目中,我們用java來寫界面和業務邏輯,用c語言寫數據庫odbc訪問。單純的odbc其實沒有什么難的,但是在java
    發表于 11-27 10:22 ?1806次閱讀

    Java編程和c語言哪一種更有優勢_C語言JAVA區別是什么

    軟件開發編程語言多達600余種,每種都有各自的特點和應用領域。目前,在國內,最熱的幾門編程語言無外乎JavaCC++了,
    的頭像 發表于 02-05 17:23 ?2.5w次閱讀

    JAVA語言優缺點

    本視頻主要詳細介紹了JAVA語言優缺點,首先介紹了JAVA語言優點,分別有簡單、面向對象、分布式
    的頭像 發表于 12-26 16:10 ?1.5w次閱讀

    步進電機和伺服電機之間主要區別是什么呢?

    在許多領域都需要各種電機,包括知名的步進電機和伺服電機。但是,對于許多用戶而言,他們不了解這兩種電機的主要區別,因此他們始終不知道如何選擇。那么,步進電機和伺服電機之間主要區別是什么? 基本結構
    的頭像 發表于 09-10 17:47 ?2.8w次閱讀

    NTC與PTC的主要區別和應用

    電子發燒友網站提供《NTC與PTC的主要區別和應用.zip》資料免費下載
    發表于 02-06 14:03 ?2次下載
    NTC與PTC的<b class='flag-5'>主要區別</b>和應用

    步進電機和伺服電機的主要區別

    在許多領域都需要各種電機,包括知名的步進電機和伺服電機。但是,對于許多用戶而言,他們不了解這兩種電機的主要區別,因此他們始終不知道如何選擇。那么,步進電機和伺服電機之間主要區別是什么?
    發表于 08-21 10:14 ?2739次閱讀
    步進電機和伺服電機的<b class='flag-5'>主要區別</b>

    RET天線的工作原理 RET扇形天線和RET全向天線之間主要區別

    RET天線的工作原理 RET扇形天線和RET全向天線之間主要區別 RET天線工作原理及扇形天線與全向天線的主要區別 引言: 隨著無線通信技術的發展,天線作為無線通信系統中的重要組成部分,起到了接收
    的頭像 發表于 11-28 14:07 ?1307次閱讀

    dwdm與wdm的主要區別

    光纖通信中廣泛使用的多路復用技術。它們的主要區別在于波長間隔、系統容量、成本和應用領域等方面。 波長間隔 DWDM和WDM的主要區別在于它們使用的波長間隔。WDM技術使用較大的波長間隔,通常在20nm到
    的頭像 發表于 07-18 10:34 ?970次閱讀
    主站蜘蛛池模板: 黄色日比| 久久综合九九亚洲一区 | 亚洲人成77777在线观看网 | 国产在线观看网址你懂得 | 奇米4色| 亚洲美女啪啪 | 午夜视频福利在线观看 | 色老头·com| 天天操视频 夜夜 | 亚洲资源在线观看 | 成人欧美一区二区三区视频 | 日本黄色高清视频 | 特级毛片免费视频播放 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | 一个色亚洲 | 亚洲乱亚洲乱妇41p国产成人 | 欧美色欧美亚洲高清在线视频 | 国内露脸夫妇交换精品 | 深爱开心激情 | 天天曰天天爽 | 国产精品大尺度尺度视频 | 久久夜夜操妹子 | 伊人久久大香线蕉影院95 | 在线a亚洲老鸭窝天堂新地址 | 青青伊人91久久福利精品 | 欧美hhh | 你懂的网站在线观看 | 欧美一级爱操视频 | ts视频在线观看 | 特级aaa毛片 | 天天干天天综合 | 人人干人人看 | 国产永久视频夜色资源网 | 成人黄色免费看 | 香蕉视频啪啪 | 午夜h视频 | 免费一级特黄3大片视频 | 天天射日日射 | 日本xxxxxxxxx69| 女性一级全黄生活片 | 天天干夜夜怕 |