Der er mange forskelle og ligheder mellem C++ programmering sprog og Java . En liste over de største forskelle mellem C++ og Java er givet nedenfor:
Sammenligningsindeks | C++ | Java |
---|---|---|
Platformuafhængig | C++ er platformsafhængig. | Java er platform-uafhængig. |
Bruges hovedsageligt til | C++ bruges hovedsageligt til systemprogrammering. | Java bruges hovedsageligt til applikationsprogrammering. Det er meget udbredt i Windows-baserede, webbaserede, virksomheds- og mobilapplikationer. |
Designmål | C++ er designet til programmering af systemer og applikationer. Det var en forlængelse af C programmeringssprog . | Java blev designet og skabt som en fortolker til printsystemer, men blev senere udvidet som en understøttende netværkscomputer. Den er designet til at være nem at bruge og tilgængelig for et bredere publikum. |
Gå til | C++ understøtter goto-sætningen. | Java understøtter ikke goto-sætningen. |
Multipel arv | C++ understøtter multipel nedarvning. | Java understøtter ikke multipel nedarvning gennem klasse. Det kan opnås ved at bruge grænseflader i java . |
Operatør overbelastning | C++ understøtter operatør overbelastning . | Java understøtter ikke operatøroverbelastning. |
Pointer | C++ understøtter pointere. Du kan skrive et pointerprogram i C++. | Java understøtter pointer internt. Du kan dog ikke skrive pointerprogrammet i java. Det betyder, at java har begrænset pointerunderstøttelse i java. |
Kompiler og tolk | C++ bruger kun compiler. C++ kompileres og køres ved hjælp af compileren, som konverterer kildekoden til maskinkode, så C++ er platformsafhængig. | Java bruger både compiler og fortolker. Java-kildekoden konverteres til bytekode på kompileringstidspunktet. Fortolkeren udfører denne bytekode ved kørsel og producerer output. Java fortolkes derfor er det platformsuafhængigt. |
Call by Value og Call by reference | C++ understøtter både call by value og call by reference. | Java understøtter kun opkald efter værdi. Der er ingen opkald ved reference i java. |
Struktur og forening | C++ understøtter strukturer og fagforeninger. | Java understøtter ikke strukturer og fagforeninger. |
Trådstøtte | C++ har ikke indbygget understøttelse af tråde. Den er afhængig af tredjepartsbiblioteker til trådunderstøttelse. | Java har indbygget tråd support. |
Dokumentationskommentar | C++ understøtter ikke dokumentationskommentarer. | Java understøtter dokumentationskommentarer (/** ... */) for at skabe dokumentation for java-kildekode. |
Virtuelt nøgleord | C++ understøtter virtuelle søgeord, så vi kan beslutte, om vi skal tilsidesætte en funktion eller ej. | Java har ikke noget virtuelt nøgleord. Vi kan som standard tilsidesætte alle ikke-statiske metoder. Med andre ord er ikke-statiske metoder virtuelle som standard. |
usigneret højreskift >>> | C++ understøtter ikke >>> operator. | Java understøtter usigneret højreskift >>> operator, der udfylder nul øverst for de negative tal. For positive tal fungerer det på samme måde som >> operator. |
Arvetræ | C++ opretter altid et nyt arvetræ. | Java bruger altid et enkelt arvetræ, fordi alle klasser er underordnede af Object-klassen i Java. Object-klassen er roden til arv træ i java. |
Hardware | C++ er tættere på hardware. | Java er ikke så interaktivt med hardware. |
Objektorienteret | C++ er et objektorienteret sprog. Men i C-sproget er et enkelt rodhierarki ikke muligt. | Java er også en objektorienteret Sprog. Men alt (undtagen grundlæggende typer) er et objekt i Java. Det er et enkelt rodhierarki, da alt bliver afledt fra java.lang.Object. |
Bemærk
- Java understøtter ikke standardargumenter som C++.
- Java understøtter ikke header-filer som C++. Java bruger importnøgleordet til at inkludere forskellige klasser og metoder.
Eksempel på C++-program
Fil: main.cpp
#include using namespace std; int main() { cout << 'Hello C++ Programming'; return 0; }
Produktion:
Hello C++ Programming
Eksempel på Java-program
Fil: Simple.java
class Simple{ public static void main(String args[]){ System.out.println('Hello Java'); } }
Produktion:
Hello Java