Hlavný rozdiel: Java je programovací jazyk, ktorý bol ovplyvnený jazykom C. Odvodzuje veľkú časť svojej syntaxe z C a C ++, avšak má menej zariadení nižšej úrovne ako jedna. Java je univerzálny programovací jazyk, ktorý je navrhnutý tak, aby mal menej implementačných závislostí v porovnaní s predchádzajúcimi jazykmi. C #, tiež známy ako C sharp, je objektovo orientovaný programovací jazyk. C # je multi-paradigmový programovací jazyk. C # je založený na programovacom jazyku C. Bola pôvodne vyvinutá spoločnosťou Anders Hejlsberg pre Microsoft v rámci .NET.
Java bol vyvinutý Jamesom Goslingom v spoločnosti Sun Microsystems a bol vydaný v roku 1995. Bol pôvodne prepustený ako základná súčasť platformy Java spoločnosti Sun Microsystems. Spoločnosť Sun odvtedy licencovala väčšinu svojich technológií Java pod licenciou GNU General Public License. To znamená, že všetky technológie, ktoré sú licencované pod licenciou GNU General Public License, sú otvorené a sú dostupné bezplatne. Spoločnosť Sun Microsystems sa nakoniec zlúčila do spoločnosti Oracle Corporation.
Java je navrhnutý tak, aby umožňoval spustenie rovnakého kódu na rôznych platformách. tj vývojári môžu "písať raz, bežať kdekoľvek" (WORA). Preto sú aplikácie Java zvyčajne kompilované do bytecode. Súborový súbor, ktorý obsahuje Java bytecode, je potom možné spustiť na ľubovoľnom Java Virtual Machine (JVM). To by bez ohľadu na architektúru počítača.
Od roku 2012 sa jazyk Java stal jedným z najpopulárnejších programovacích jazykov na použitie. Platí to najmä pre webové aplikácie klient-server. Mnoho ďalších systémov vyvinulo alternatívne implementácie technológií Sun, ako napríklad GNU Compiler for Java a GNU Classpath.
C #, tiež známy ako C sharp, je objektovo orientovaný programovací jazyk. C # je multi-paradigmový programovací jazyk. Zahŕňa silné písanie, imperatívne, deklaratívne, funkčné, procedurálne, generické, objektovo orientované (triedy) a programové disciplíny orientované na komponenty.
C # je založený na programovacom jazyku C. Bola pôvodne vyvinutá spoločnosťou Anders Hejlsberg pre Microsoft v rámci .NET. Jazyk C # bol neskôr schválený štandardom Ecma (ECMA-334) a ISO (ISO / IEC 23270: 2006). C # je jeden z programovacích jazykov navrhnutých pre spoločnú jazykovú infraštruktúru. C # je určený ako jednoduchý, moderný, univerzálny, objektovo orientovaný programovací jazyk.
- Jazyk C # je určený ako jednoduchý, moderný, univerzálny, objektovo orientovaný programovací jazyk.
- Jazyk a jeho implementácie by mali poskytovať podporu pre princípy softvérového inžinierstva, ako je silná kontrola typu, kontrola hraníc polí, detekcia pokusov o použitie neinicializovaných premenných a automatické zber odpadu. Robustnosť softvéru, trvanlivosť a produktivita programátora sú dôležité.
- Jazyk je určený na použitie pri vývoji softvérových komponentov vhodných na nasadenie v distribuovaných prostrediach.
- Prenositeľnosť zdrojového kódu je veľmi dôležitá, rovnako ako prenositeľnosť programátora, najmä pre tých programátorov, ktorí už majú znalosti o C a C ++.
- Podpora internacionalizácie je veľmi dôležitá.
- C # je určený na písanie aplikácií pre hostiteľské aj vstavané systémy, od veľmi veľkých, ktoré používajú sofistikované operačné systémy až po tie veľmi malé, ktoré majú vyhradené funkcie.
- Napriek tomu, že aplikácie C # majú byť ekonomické z hľadiska požiadaviek na pamäť a spracovanie energie, jazyk nebol určený na to, aby priamo konkuroval výkonu a veľkosti s jazykom C alebo montážnym jazykom.
Keďže vychádza z jazyka C, je to podobne. Dokonca zdieľa niektoré syntaktické konvencie s C. Nevýhodou C # je však to, že ako bola vyvinutá spoločnosťou Microsoft na použitie v rámci .NET, funguje iba v operačných systémoch spoločnosti Microsoft.
Niektoré rozdiely medzi Java a C #:
- C # poskytuje viac dátových typov v porovnaní s Java.
- C # obsahuje viac primitívnych dátových typov než Java.
- C # podporuje preťaženie operátora, zatiaľ čo Java nie je.
- C # podporuje typ vzpery, zatiaľ čo Java nie je.
- Všetky dátové typy v C # sú strut.
- C # poskytuje lepšie verzie ako Java.
- C # umožňuje, aby parametre boli odovzdané odkazom pomocou kľúčového slova ref, zatiaľ čo Java umožňuje parametre prechádzať podľa hodnoty.
- C # umožňuje variabilný počet parametrov pomocou kľúčového slova param.
- C # poskytuje statické konštruktory na inicializáciu.
- C # poskytuje príkaz goto namiesto príkazu break.
- Vyhlásenie polí je v C # odlišné v porovnaní s Java.
- Dohovorom Java je vložiť do každého súboru jednu verejnú triedu a niektorí kompilátori to vyžadujú. C # umožňuje akékoľvek usporiadanie zdrojového súboru.
- Java nepodporuje udalosti a delegátov.
- V jazyku Java metódy sú virtuálne štandardne, ale môžu byť konečné. Kým v C # sú štandardne zapečatené, ale môžu byť virtuálne.
- C # nemá skontrolované výnimky.
- Java neumožňuje vytváranie užívateľsky definovaných typov hodnôt.
- Java nemá preťaženie operátorom a konverziou.
- Java neobsahuje bloky iterátorov pre jednoduchú implementáciu iterátorov.
- Java nemá nič iné ako LINQ.
- Čiastočne kvôli tomu, že nemáme delegátov, Java nemá nič podobné ako anonymné metódy a lambda výrazy.
- Java nemá stromy výrazov.
- C # nemá anonymné vnútorné triedy.
- Java nemá žiadny ekvivalent anonymných typov C # 3.0.
- Java nemá implicitne zadané miestne premenné.
- Java nemá metódy rozšírenia.
- Java nemá výrazy pre inicializáciu objektov a kolekcií.
- Java nemá vlastnosti ako súčasť jazyka; sú to konvencia metódy get / set / is.
- Java nemá ekvivalent "nebezpečného" kódu.
- Java enumy sú oveľa objektovo orientovanejšie.
- Java nemá žiadne preprocesorové smernice (#define, #if atď. V C #).
- Java nemá žiadny ekvivalent C # ref a out pre prechod parametrov odkazom.
- Java nemá žiadny ekvivalent čiastočných typov.
- C # rozhrania nemôžu deklarovať polia.
- Java nemá žiadne typy nepodpísaných integerov.
- Java nemá žiadnu jazykovú podporu pre desiatkový typ.
- Java nemá žiadny ekvivalent nulového typu