Différence entre java et C++
Java est un langage de programmation orienté objet alors que C++ est à la fois un langage de programmation procédurale et orienté objet. Java prend en charge le garbage collector automatique. Il ne supporte pas les destructeurs comme le fait dans C++. C++ dépend de la plate-forme, mais Java est indépendant de la plate-forme. C++ prend en charge l’instruction goto mais Java ne la prend pas en charge. C++ prend en charge l’héritage multiple et Java ne prend pas en charge l’héritage multiple par classe. Il existe de nombreuses différences entre le langage de programmation C++ et Java. Une liste des principales différences entre C++ et Java est donnée ci-dessous.
Table de comparaison
C++ | Java | |
---|---|---|
Plateforme | C++ dépend de la plate-forme. | Java est indépendant de la plate-forme. |
Principalement utilisé pour | C++ est principalement utilisé pour la programmation système. | Java est principalement utilisé pour la programmation des applications. Il est largement utilisé dans les applications Windows, Web et mobiles. |
Objectif de conception | C++ a été conçu pour la programmation système et application. C’était une extension du langage de programmation C. | Java a été conçu et créé en tant que interpréteur pour les systèmes d’impression. Il a été conçu dans le but d’être facile à utiliser et accessible à un public plus large. |
Goto | C++ prend en charge l’instruction goto. | Java ne supporte pas l’instruction goto. |
Héritage multiple | C++ prend en charge l’héritage multiple. | Java ne supporte pas l’héritage multiple par classe. Cela peut être réalisé par des interfaces en java. |
Surcharge de l’opérateur | C++ prend en charge la surcharge des opérateurs. | Java ne supporte pas la surcharge des opérateurs. |
Pointeurs | C++ supporte les pointeurs. Vous pouvez écrire un programme en utilisant des pointeurs en C++. | Vous ne pouvez pas écrire un programme en utilisant des pointeurs en java. |
Compilateur et interpréteur | C++ utilise uniquement le compilateur. C++ est compilé et exécuté à l’aide du compilateur qui convertit le code source en code machine. C++ dépend donc de la plate-forme. | Java utilise à la fois un compilateur et un interpréteur. Le code source Java est converti en bytecode au moment de la compilation. L’interpréteur exécute ce bytecode au moment de l’exécution et génère une sortie. Java est un interpréteur c’est pourquoi il est indépendant de la plate-forme. |
Appel par valeur et appel par référence | C++ prend en charge le passage par valeur et par référence. | Java ne prend en charge que le passage par valeur. |
Structure et union | C++ supporte les structures et les unions. | Java ne supporte pas les structures et les unions. |
Support de Thread | C++ n’a pas de support intégré pour les threads. Il s’appuie sur des bibliothèques tierces pour la prise en charge des threads. | Java a un support de thread intégré. |
Commentaire de documentation | C++ ne supporte pas les commentaires de documentation. | Java prend en charge les commentaires de documentation (/**…*/) pour créer une documentation pour le code source. |
Décalage droit non signé >>> | C++ ne supporte pas l’opérateur >>>. | Java prend en charge l’opérateur >>> (opérateur de décalage à droite). |
Matériel | C++ est plus proche du matériel. | Java n’est pas si interactif avec le matériel. |
Orienté objet | C++ est un langage orienté objet. Cependant, en langage C, y’a pas de racine de la hiérarchie de classe. | Java est aussi un langage orienté objet. Cependant, tout (sauf les types fondamentaux) est un objet en Java. Il s’agit d’une racine de la hiérarchie de classe car tout est dérivé de java.lang.Object. |
Exemple d’un programme en C++
#include <iostream> using namespace std; int main() { cout << "Hello World!"; return 0; }
Exemple d’un programme en Java
class Exemple{ public static void main(String args[]){ System.out.println("Hello World!"); } }
Conclusion
C++ et Java sont des langages de programmation les plus utilisés. Java est influencé par le C++, car il a été développé après le C++ et les deux prennent en charge la programmation orientée objet.