Rozdíl mezi C++ a Java

Klíčový rozdíl mezi C++ a Java

  • C++ používá pouze kompilátor, zatímco Java používá jak kompilátor, tak interpret.
  • C++ podporuje přetížení operátorů i přetížení metod Java podporuje pouze přetížení metody.
  • C++ podporuje ruční správu objektů pomocí klíčových slov new a delete Java má vestavěný automatický sběr odpadu.
  • C++ podporuje struktury zatímco Java nepodporuje struktury.
  • C++ zatímco podporuje odbory Java nepodporuje odbory.

  • C++ Vs Java
    C++ Vs Java

Co je C++ Jazyk?

C++ je počítačový programovací jazyk, který obsahuje funkci programovacího jazyka C a také Simula67 (první objektově orientovaný jazyk). C++ představil koncept třídy a objektů.

Zapouzdřuje jazykové rysy vysoké a nízké úrovně. Je tedy považován za jazyk střední úrovně. Dříve se nazýval „C s třídami“, protože měl všechny vlastnosti jazyka C.

Co je Java Jazyk?

Java je programovací jazyk vyvinutý společností Sun Microsystems. Tento jazyk vyvinul malý tým vývojářů softwaru. Byli známí jako Zelený tým, který inicioval Java jazyk v roce 1991.

Historie C++

C++ jazyk vyvinul Bjarne Stroustrup z AT & T Bell Laboratories. Stroustrup byl velkým zastáncem C a obdivovatelem Simula67. Chtěl spojit to nejlepší z obou jazyků. Jeho cílem bylo vytvořit jazyk, který podporuje objektově orientované programovací funkce a stále si zachovává sílu C. Výsledkem bylo C++.

Historie Java

Jedno Java jazyk byl zpočátku nazýván OAK. Původně byl vyvinut pro manipulační zařízení a set-top boxy. Dub byl obrovským selháním. V roce 1995 tedy Sun změnil název na Java a upravili jazyk tak, aby využili výhody rozvíjejícího se vývoje World Wide Web.

Later, v roce 2009, Oracle Společnost získala Sun Microsystems a převzala vlastnictví dvou klíčových softwarových aktiv Sun: Java a Solaris.

Rozdíl mezi C++ a Java

Parametr C++ Java
Vztah Žádný striktní vztah mezi názvy tříd a názvy souborů. V C++, hlavičkové soubory a implementační soubory se používají pro konkrétní třídu. Je vynucován striktní vztah, např. zdrojový kód pro třídu PayRoll musí být v PayRoll.java.
Vstupní mechanismus I/O příkazy používané in a cout, např. v » x; cout« y; Mechanismus vstupu I/O je poměrně složitý, protože čte jeden bajt po druhém (System.in). Výstup je snadný, např. System.out.println(x);
Překladač a tlumočník C++ podporuje pouze kompilátor Java podporuje jak kompilátor, tak interpret
Kompatibilita s jinými jazyky Kompatibilní se zdrojovým kódem C, kromě některých výjimečných případů. Žádná zpětná kompatibilita s jakýmkoli předchozím jazykem. Syntaxe je ovlivněna C/C++.
Kontrola přístupu a ochrana objektů Flexibilní model s trvalou ochranou Těžkopádný model podporuje slabé zapouzdření.
Pojem Napište jednou zkompilujte kdekoli Napište jednou spusťte kdekoli a všude
Podpora pro typ programování Umožňuje jak procedurální programování, tak objektově orientované programování. Podpora objektově orientovaného programovacího modelu.
Rozhraní Umožňuje přímá volání do nativních systémových knihoven. Volejte pouze přes Java Nativní rozhraní a nedávno Java Nativní přístup
Správa paměti Přístupné pro programátora Systém řízen
Kořenová hierarchie C++ taková kořenová hierarchie neexistuje. C++ podporuje procedurální i objektově orientované programování; proto se nazývá hybridní jazyk. Java je čistě objektově orientovaný programovací jazyk. To je. Proč se řídí jedinou kořenovou hierarchií.
Nejlepší vlastnosti C++ podporuje objektově orientované funkce Funkce procedurálního programování. Java podporovat automatický sběr odpadu. Nepodporuje destruktory jako C++ ano.
Přejít na prohlášení C++ má prohlášení goto. I když není ideální použít příkaz goto. Java nemá žádné goto prohlášení. Klíčová slova got a const jsou rezervována, i když nejsou použita.
Vícenásobné dědictví C++ poskytnout vícenásobnou dědičnost. Klíčové slovo virtual se používá k řešení problémů během vícenásobné dědičnosti, pokud nějaké existují. Java neposkytuje vícenásobné dědictví.
Operátor rozlišení rozsahu C++ má operátor rozlišení rozsahu (: :) který se používá k definování metody mimo třídu ak přístupu ke globální proměnné v rámci oboru, kde také existuje lokální proměnná se stejným názvem. Žádný operátor rozlišení rozsahu (: :) in Java. Definice metod se musí vyskytovat v rámci třídy, takže není potřeba rozlišení rozsahu.
Podpůrná metoda C++ podporuje přetížení obou metod i přetížení operátorů Java podporuje pouze přetížení metody. Neposkytuje podporu pro přetížení operátora.
Přenositelnost Zdroj musí být překompilován pro platformu; kód tedy není přenosný. Třídy bajtového kódu jsou přenosné do JVM specifických pro platformu.
Sémantika typů Konzistentní mezi primitivními a objektovými typy. Liší se u primitivních a objektových typů.
knihovny Funkčnost převážně nízké úrovně Masivní, třídy pro služby na vysoké úrovni.
Detekce běhových chyb Zodpovědnost programátora. Systémová odpovědnost.
Funkce a data Funkce a data mohou existovat mimo jakoukoli třídu, k dispozici jsou globální rozsahy a obory názvů. Všechny funkce a data existují uvnitř tříd; rozsah balíčku je k dispozici.
Plošina C++ programy jsou závislé na platformě. Je třeba je zkompilovat pro konkrétní platformu. Java programy jsou nezávislé na platformě. Java programy jsou napsány pro Java Virtuální stroj (JVM). Poběží bez nutnosti rekompilace.
Detekce běhových chyb In C++, Za kontrolu chyb odpovídá programátor. Je odpovědností systému zkontrolovat chyby v programu.
ukazatel C++ podpora ukazatelů. Java nabízí pouze omezenou podporu pro ukazatele.
Struktura Podporuje struktury. Nepodporuje struktury.
Odbory C++ podporuje odbory. Java nepodporuje odbory.
Správa objektů C++ podporuje ruční správu objektů pomocí klíčových slov new a delete. Java je těžká, závisí na automatickém sběru odpadu. Nepodporuje destruktory.