Hlavní rozdíl: Java je programovací jazyk, který byl ovlivněn jazykem C. Odvozuje hodně své syntaxe od C a C ++, nicméně má méně zařízení na nižší úrovni než jedna. Java je univerzální programovací jazyk, který je navržen tak, aby měl v porovnání s předchozími jazyky menší závislost na implementaci. C #, také známý jako C sharp, je objektově orientovaný programovací jazyk. C # je programovací jazyk pro více paradigmat. C # je založen na programovacím jazyce C. Původně byl vyvinut Andersem Hejlsbergem pro Microsoft pro použití v jeho .NET rámci.
Java byl vyvinut Jamesem Goslingem v Sun Microsystems a byl vydán v roce 1995. Původně byl vydán jako základní součást platformy Java společnosti Sun Microsystems. Společnost Sun od té doby licencovala většinu svých technologií Java pod GNU General Public License. To znamená, že veškerá technologie licencovaná podle GNU General Public Licence je open source a obecně dostupná zdarma. Společnost Sun Microsystems se nakonec sloučila do společnosti Oracle Corporation.
Java je navržena tak, aby umožňovala stejný kód fungovat na různých platformách. vývojáři mají možnost "psát jednou, běžet kdekoli" (WORA). Proto jsou aplikace Java obvykle kompilovány do bytecode. Soubor třídy, který obsahuje Java bytecode, pak může být spuštěn na libovolném Java Virtual Machine (JVM). To by bylo bez ohledu na architekturu počítače.
Od roku 2012 se program Java stal jedním z nejpopulárnějších programovacích jazyků pro použití. To platí zejména pro webové aplikace klient-server. Mnoho dalších systémů vyvinulo alternativní implementace technologií Sun, jako je GNU Compiler for Java a GNU Classpath.
C #, také známý jako C sharp, je objektově orientovaný programovací jazyk. C # je programovací jazyk pro více paradigmat. Zahrnuje silné psaní, imperative, deklarativní, funkční, procedurální, generické, objektově orientované (třídní) a programově orientované disciplíny.
C # je založen na programovacím jazyce C. Původně byl vyvinut Andersem Hejlsbergem pro Microsoft pro použití v jeho .NET rámci. Jazyk C # byl později schválen jako standard Ecma (ECMA-334) a ISO (ISO / IEC 23270: 2006). C # je jeden z programovacích jazyků určených pro společnou jazykovou infrastrukturu. C # je určen jako jednoduchý, moderní, univerzální, objektově orientovaný programovací jazyk.
- Jazyk C # je určen jako jednoduchý, moderní, univerzální, objektově orientovaný programovací jazyk.
- Jazyk a jeho implementace by měly poskytovat podporu pro principy softwarového inženýrství, jako je například silná kontrola typu, kontrola hraničních polí, detekce pokusů o použití neinicializovaných proměnných a automatický sběr odpadků. Robustnost softwaru, trvanlivost a produktivita programátorů jsou důležité.
- Jazyk je určen pro použití při vývoji softwarových komponent vhodných pro nasazení v distribuovaném prostředí.
- Přenositelnost zdrojového kódu je velmi důležitá, stejně jako přenositelnost programátorů, zvláště pro ty programátory, kteří již mají znalost C a C ++.
- Podpora internacionalizace je velmi důležitá.
- C # je určen pro psaní aplikací pro hostované i vestavěné systémy, od velmi velkých, které používají sofistikované operační systémy až po velmi malé, které mají vyhrazené funkce.
- Přestože aplikace C # mají být ekonomické s ohledem na požadavky na paměť a výpočetní výkon, jazyk není určen k přímému soupeření o výkon a velikost s jazykem C nebo montážním jazykem.
Jelikož je založen na jazyce C, je to docela podobné. Dokonce sdílí některé syntaktické konvence s C. Nicméně nevýhodou C # je, že, jak byla vyvinuta společností Microsoft pro použití v rámci .NET, pracuje pouze na operačních systémech Microsoft.
Některé rozdíly mezi Java a C #:
- C # poskytuje více datových typů ve srovnání s Java.
- C # obsahuje více primitivních datových typů než Java.
- C # podporuje přetížení operátora, zatímco Java není.
- C # podporuje typ vzpěry, zatímco Java ne.
- Všechny datové typy v C # jsou strut.
- C # poskytuje lepší verzi než Java.
- C # umožňuje zadávání parametrů odkazem pomocí klíčového slova ref, zatímco Java umožňuje parametry předávat podle hodnoty.
- C # umožňuje variabilní počet parametrů pomocí klíčového slova param.
- C # poskytuje statické konstruktory pro inicializaci.
- C # poskytuje příkaz goto namísto příkazu break.
- Deklarace polí je v C # odlišná od Java.
- Konvence pro Java je dát do každé složky jednu veřejnou třídu a některé překladače to vyžadují. C # umožňuje libovolné uspořádání zdrojového souboru.
- Java nepodporuje události a delegáty.
- V jazyce Java jsou metody ve výchozím nastavení virtuální, ale mohou být dokončeny. Zatímco v C # jsou ve výchozím nastavení zapečetěny, ale mohou být virtuální.
- C # nezkontroluje výjimky.
- Java neumožňuje vytváření uživatelsky definovaných typů hodnot.
- Java nemá přetížení operátora a konverze.
- Java nemá bloky iterátoru pro jednoduchou implementaci iterátorů.
- Java nemá nic jako LINQ.
- Částečně kvůli tomu, že nemáme delegáty, Java nemá nic podobného anonymním metodám a výrazům lambda.
- Java nemá stromy výrazů.
- C # nemá anonymní vnitřní třídy.
- Java nemá žádný ekvivalent anonymních typů C # 3.0.
- Java nemá implicitně zadané lokální proměnné.
- Java nemá metody rozšíření.
- Java nemá výrazy pro inicializaci objektů a kolekce.
- Java nemá vlastnosti jako součást jazyka; jsou to konvence metod get / set / is.
- Java nemá ekvivalent "nebezpečného" kódu.
- Java enumy jsou mnohem více objektově orientované.
- Java nemá žádné direktivy preprocesoru (#define, #if atd. V C #).
- Java nemá žádný ekvivalent C # a ref a out pro předávání parametrů odkazem.
- Java nemá žádný ekvivalent dílčích typů.
- Rozhraní C # nemohou deklarovat pole.
- Java nemá žádné nepodpísané typy celých čísel.
- Java nemá žádnou jazykovou podporu pro desítkový typ.
- Java nemá žádný ekvivalent nulových typů hodnot