Differenza tra C++ e Java
Differenza chiave tra C++ e Java
- C++ utilizza solo il compilatore, mentre Java utilizza sia il compilatore che l'interprete.
- C++ supporta sia il sovraccarico dell'operatore che il sovraccarico del metodo mentre Java supporta solo l'overload del metodo.
- C++ supporta la gestione manuale degli oggetti con l'aiuto di parole chiave nuove ed eliminate mentre Java ha la raccolta automatica dei rifiuti integrata.
- C++ supporta le strutture mentre Java non supporta le strutture.
- C++ sostiene i sindacati mentre Java non sostiene i sindacati.

Qual è la C++ linguaggio?
C++ è un linguaggio di programmazione per computer che contiene le funzionalità del linguaggio di programmazione C e di Simula67 (primo linguaggio orientato agli oggetti). C++ introdotto il concetto di Classe e Oggetti.
Incapsula funzionalità del linguaggio di alto e basso livello. Quindi, è visto come un linguaggio di livello intermedio. In precedenza si chiamava “C con classi” poiché aveva tutte le proprietà del linguaggio C.
Qual è la Java linguaggio?
Java è un linguaggio di programmazione sviluppato da Sun Microsystems. Un piccolo team di sviluppo software ha sviluppato questo linguaggio. Erano conosciuti come il Green Team, che ha avviato Java lingua nel 1991.
Storia di C++
C++ linguaggio è stato sviluppato da Bjarne Stroustrup presso AT & T Bell Laboratories. Stroustrup era un forte sostenitore di C e un ammiratore di Simula67. Voleva combinare il meglio di entrambi i linguaggi. Il suo obiettivo era creare un linguaggio che supportasse le funzionalità di programmazione orientata agli oggetti e che conservasse comunque la potenza di C. Ciò ha portato a C++.
Storia di Java
. Java il linguaggio inizialmente si chiamava OAK. In origine, era stato sviluppato per gestire dispositivi e decoder. Oak fu un fallimento enorme. Così, nel 1995 Sun cambiò il nome in Java e ha modificato il linguaggio per trarre vantaggio dal fiorente business dello sviluppo del World Wide Web.
Later, nel 2009, Oracle Corporation ha acquisito Sun Microsystems e ha acquisito la proprietà di due risorse software Sun chiave: Java e Solaris.
Differenza tra C++ e Java
Parametro | C++ | Java |
---|---|---|
Rapporto | Nessuna relazione stretta tra nomi di classi e nomi di file. In C++, file di intestazione e file di implementazione vengono utilizzati per classi specifiche. | Viene applicata una relazione stretta, ad esempio il codice sorgente per la classe PayRoll deve trovarsi in PayRoll.java. |
Meccanismo di input | Le istruzioni di I/O utilizzano in e cout, ad esempio in » x; cout« y; | Il meccanismo di input I/O è piuttosto complesso in quanto legge un byte alla volta (System.in). L'output è semplice, ad esempio System.out.println(x); |
Compilatore e interprete | C++ supporta solo il compilatore | Java supporta sia il compilatore che l'interprete |
Compatibilità con altre lingue | Compatibile con il codice sorgente C, tranne alcuni casi eccezionali. | Nessuna retrocompatibilità con nessun linguaggio precedente. La sintassi è influenzata da C/C++. |
Controllo accessi e protezione oggetti | Disponibile modello flessibile con protezione costante | Il modello ingombrante incoraggia un incapsulamento debole. |
Idea | Scrivi una volta compilato ovunque | Scrivi una volta, corri ovunque |
Supporto per il tipo di programmazione | Consente sia la programmazione procedurale che la programmazione orientata agli oggetti. | Supporta il modello di programmazione orientato agli oggetti. |
Interfaccia | Consente chiamate dirette alle librerie di sistema native. | Chiamare solo tramite il Java Interfaccia nativa e recentemente Java Accesso nativo |
Gestione della memoria | Accessibile al programmatore | Sistema controllato |
Gerarchia delle radici | C++ non esiste una tale gerarchia di radici. C++ supporta sia la programmazione procedurale che quella orientata agli oggetti; pertanto, è chiamata lingua ibrida. | Java è un puro linguaggio di programmazione orientato agli oggetti. Questo è. Perché segue la gerarchia a radice singola. |
caratteristiche migliori | C++ supporta funzionalità orientate agli oggetti Funzionalità di programmazione procedurale. | Java supportare la raccolta automatica dei rifiuti. Non supporta i distruttori come C++ fa. |
Vai alla dichiarazione | C++ ha un'istruzione goto. Tuttavia, non è l'ideale utilizzare un'istruzione goto. | Java non ha un'istruzione goto. Le parole chiave got e const sono riservate anche se non vengono utilizzate. |
Eredità multipla | C++ fornire più ereditarietà. La parola chiave virtuale viene utilizzata per risolvere i problemi durante l'ereditarietà multipla, se presente. | Java non fornisce ereditarietà multipla. |
Operatore di risoluzione dell'ambito | C++ ha operatore di risoluzione dell'ambito (: :) che viene utilizzato per definire un metodo all'esterno di una classe e per accedere a una variabile globale all'interno dell'ambito in cui esiste anche una variabile locale con lo stesso nome. |
Nessun operatore di risoluzione dell'ambito (: :) in Java. Le definizioni dei metodi devono verificarsi all'interno di una classe, quindi non è necessaria la risoluzione dell'ambito. |
Metodo di supporto | C++ supporta sia il sovraccarico del metodo che il sovraccarico dell'operatore | Java supporta solo il sovraccarico del metodo. Non fornisce supporto per il sovraccarico dell'operatore. |
Portabilità | Il sorgente deve essere ricompilato per la piattaforma; quindi il codice non è portabile. | Le classi bytecode sono trasferibili a JVM specifiche della piattaforma. |
Semantica del tipo | Coerente tra tipi primitivi e oggetti. | Differiscono per i tipi primitivi e di oggetto. |
Biblioteche | Funzionalità prevalentemente di basso livello | Classi enormi, per servizi di alto livello. |
Rilevamento degli errori di runtime | Responsabilità del programmatore. | Responsabilità del sistema. |
Funzioni e dati | Funzioni e dati possono esistere esterni a qualsiasi classe, sono disponibili ambiti globali e dello spazio dei nomi. | Tutte le funzioni e i dati esistono all'interno delle classi; l'ambito del pacchetto è disponibile. |
Piattaforma | C++ i programmi dipendono dalla piattaforma. Devono essere compilati per una particolare piattaforma. | Java i programmi sono indipendenti dalla piattaforma. Java i programmi sono scritti per Java Macchina virtuale (JVM). Verrà eseguito senza bisogno di ricompilazione. |
Rilevamento degli errori di runtime | In C++, È responsabilità del programmatore verificare gli errori. | È responsabilità del sistema verificare gli errori nel programma. |
Pointer | C++ puntatori di supporto. | Java offre solo un supporto limitato per i puntatori. |
Structure | Supporta le strutture. | Non fornisce alcun supporto alle strutture. |
Sindacati | C++ sostiene i sindacati. | Java non sostiene i sindacati. |
Gestione degli oggetti | C++ supporta la gestione manuale degli oggetti con l'aiuto di parole chiave nuove ed eliminate. | Java dipende pesantemente dalla raccolta automatica dei rifiuti. Non supporta i distruttori. |