Diferență între C++ si Java
Diferența cheie între C++ si Java
- C++ folosește doar compilatorul, în timp ce Java folosește atât compilatorul, cât și interpretul.
- C++ acceptă atât supraîncărcarea operatorului, cât și supraîncărcarea metodei Java acceptă doar supraîncărcarea metodei.
- C++ acceptă gestionarea manuală a obiectelor cu ajutorul cuvintelor cheie noi și ștergere, în timp ce Java are încorporată colectarea automată a gunoiului.
- C++ sustine structuri in timp ce Java nu suportă structuri.
- C++ sprijină sindicatele în timp ce Java nu sustine sindicatele.

Care este C++ limba?
C++ este un limbaj de programare pentru computer care conține caracteristica limbajului de programare C, precum și Simula67 (limbaj orientat pe primul obiect). C++ a introdus conceptul de clasă și obiecte.
Acesta încapsulează caracteristici ale limbajului de nivel înalt și scăzut. Deci, este văzută ca o limbă de nivel intermediar. Anterior a fost numit „C cu clase”, deoarece avea toate proprietățile limbajului C.
Care este Java limba?
Java este un limbaj de programare dezvoltat de Sun Microsystems. O mică echipă de dezvoltare de software a dezvoltat acest limbaj. Erau cunoscuți ca Echipa Verde, care a inițiat Java limba în anul 1991.
Istoria C++
C++ limbajul a fost dezvoltat de Bjarne Stroustrup la AT & T Bell Laboratories. Stroustrup a fost un susținător puternic al lui C și un admirator al Simula67. El a vrut să combine tot ce este mai bun din ambele limbi. El urmărea să creeze un limbaj care să accepte caracteristicile de programare orientată pe obiecte și să păstreze în continuare puterea lui C. Acest lucru a dus la C++.
Istoria Java
Java limba a fost numită inițial STEJAR. Inițial, a fost dezvoltat pentru manipularea dispozitivelor și set-top box-urilor. Oak a fost un eșec masiv. Astfel, în 1995 Sun și-a schimbat numele în Java și a modificat limbajul pentru a profita de afacerea de dezvoltare World Wide Web în plină dezvoltare.
Later, în 2009, Oracle Corporation a achiziționat Sun Microsystems și a preluat proprietatea a două active cheie software Sun: Java si Solaris.
Diferență între C++ si Java
Parametru | C++ | Java |
---|---|---|
Relaţie | Nu există o relație strictă între numele claselor și numele fișierelor. În C++, fișierele antet și fișierele de implementare sunt utilizate pentru o anumită clasă. | Relația strictă este impusă, de exemplu, codul sursă pentru clasa PayRoll trebuie să fie în PayRoll.java. |
Mecanism de intrare | Instrucțiunile I/O folosesc in și cout, de exemplu, în » x; cout« y; | Mecanismul de intrare I/O este destul de complex, deoarece citește câte un octet (System.in). Ieșirea este ușoară, de exemplu System.out.println(x); |
Compilator și interpret | C++ suportă doar compilatorul | Java acceptă atât compilatorul, cât și interpretul |
Compatibilitate cu alte limbi | Compatibil cu codul sursă C, cu excepția unor cazuri excepționale. | Fără compatibilitate cu orice limbă anterioară. Sintaxa este influențată de C/C++. |
Controlul accesului și protecția obiectelor | Model flexibil cu protecție constantă disponibilă | Modelul greoi încurajează încapsularea slabă. |
Concept | Scrieți o dată compilați oriunde | Scrie o dată rulat oriunde peste tot |
Suport pentru tipul de programare | Permite atât programarea procedurală, cât și programarea orientată pe obiecte. | Sprijină modelul de programare orientată pe obiecte. |
interfaţă | Permite apeluri directe către bibliotecile de sistem native. | Sunați doar prin intermediul Java Interfață nativă și recent Java Acces nativ |
Managementul memoriei | Accesibil pentru programator | Sistem controlat |
Ierarhia rădăcină | C++ nu există o astfel de ierarhie rădăcină. C++ suportă atât programarea procedurală, cât și programarea orientată pe obiecte; prin urmare, se numește limbaj hibrid. | Java este un limbaj de programare pur orientat pe obiecte. Asta e. De ce Urmează ierarhia cu o singură rădăcină. |
Cele mai bune caracteristici | C++ acceptă caracteristici orientate pe obiecte Caracteristici de programare procedurală. | Java suportă colectarea automată a gunoiului. Nu suportă destructori ca C++ nu. |
Goto Statement | C++ are o declarație goto. Deși, nu este ideal să folosești o declarație goto. | Java nu are declarație goto. Cuvintele cheie got și const sunt rezervate chiar dacă nu sunt folosite. |
Moștenire multiplă | C++ oferi multipleMoștenire. Cuvântul cheie virtual este folosit pentru a rezolva problemele în timpul moștenirii multiple, dacă există. | Java nu oferă moștenire multiplă. |
Operator rezoluție domeniului | C++ are operator de rezoluție a domeniului de aplicare (: :) care este folosit pentru a defini o metodă în afara unei clase și pentru a accesa o variabilă globală din domeniul în care există și o variabilă locală cu același nume. |
Fără operator de rezoluție a domeniului (: :) in Java. Definițiile metodei trebuie să apară în cadrul unei clase, deci nu este nevoie de rezoluția domeniului. |
Metoda de sprijin | C++ acceptă atât supraîncărcarea metodei, cât și supraîncărcarea operatorului | Java acceptă doar supraîncărcarea metodei. Nu oferă suport pentru supraîncărcarea operatorului. |
Portabilitate | Sursa trebuie să fie recompilată pentru platformă; prin urmare, codul nu este portabil. | Clasele bytecode sunt transferabile la JVM-uri specifice platformei. |
Semantica tipului | Consecventă între tipurile primitive și obiecte. | Diferă pentru tipurile primitive și de obiecte. |
Biblioteci | Funcționalitate predominant de nivel scăzut | Cursuri masive pentru servicii de nivel înalt. |
Detectarea erorilor de rulare | Responsabilitatea programatorului. | Responsabilitatea de sistem. |
Funcții și date | Funcțiile și datele pot exista în afara oricărei clase, sunt disponibile domenii globale și spații de nume. | Toate funcțiile și datele există în cadrul claselor; domeniul de aplicare al pachetului este disponibil. |
Platformă | C++ programele depind de platformă. Ele trebuie compilate pentru o anumită platformă. | Java programele sunt independente de platformă. Java programele sunt scrise pentru Java Mașină virtuală (JVM). Va rula fără a fi nevoie de recompilare. |
Detectarea erorilor de rulare | In C++, Este responsabilitatea Programatorului să verifice erorile. | Este responsabilitatea sistemului să verifice erorile din program. |
Pointer | C++ indicatoare de sprijin. | Java oferă doar suport limitat pentru indicatori. |
Structure | Susține structuri. | Nu are nici un suport pentru structuri. |
Sindicatele | C++ sprijină sindicatele. | Java nu sustine sindicatele. |
Managementul obiectelor | C++ acceptă gestionarea manuală a obiectelor cu ajutorul cuvintelor cheie noi și șterge. | Java este grea depinde de colectarea automată a gunoiului. Nu suportă destructori. |