Maison >Java >JavaBase >Quelle est la différence entre Java et C++

Quelle est la différence entre Java et C++

青灯夜游
青灯夜游original
2021-03-24 15:25:1746429parcourir

Différence : Java ne peut pas utiliser une valeur non booléenne comme valeur booléenne dans une expression logique, mais C++ le peut. C++ introduit un mécanisme de surcharge d'opérateurs, que Java ne prend pas en charge. C++ est obligatoire, Java n'est pas obligé. Il existe plusieurs héritages en C++ et un seul héritage en Java, mais Java peut implémenter plusieurs héritages via des interfaces.

Quelle est la différence entre Java et C++

L'environnement d'exploitation de ce tutoriel : système Windows7, version C++17&&java8, ordinateur Dell G3.

La différence entre C++ et Java :

Bien que Java soit basé sur C++, en comparaison, Java est un langage de programmation orienté objet plus pur. En Java, tout est traité comme un objet.

1. Une fois que C++ a créé un objet, vous devez appeler la méthode delete pour le détruire après l'avoir utilisé ; Java dispose d'un mécanisme de récupération de place pour surveiller tous les nouveaux objets et identifier les objets qui ne seront plus référencés. libérer de l'espace mémoire.

2. Portée (la portée de C, C++ et Java est déterminée par la position des accolades) :
Mais le code suivant est légal en C et C++, et le compilateur signalera le variable en Java définie. Parce que C et C++ masqueront les variables avec des portées plus grandes, mais Java ne le permet pas.

{
    int x = 12;
    {
        int x = 96;
    }
}

3. Valeurs par défaut des membres de base

Lorsque les variables sont utilisées en tant que membres d'une classe, Java ne donne que des valeurs par défaut pour garantir que ces variables membres de base les types sont initialisés. Mais C++ n'a pas cette fonctionnalité. Pour les variables locales, le compilateur C++ vous avertira et Java le traitera comme une erreur.

4. Java ne peut pas utiliser une valeur non booléenne comme valeur booléenne dans une expression logique, mais C++ le peut.

En C++, si la valeur d'une expression est 0, elle est fausse, et si elle n'est pas 0, elle est vraie.

Par exemple :

if(1){
}

5. Opérateur de décalage

Un nouvel opérateur de décalage à droite "non signé" est ajouté en Java (>>> ), qui utilise " extension zéro", en insérant des 0 dans les bits hauts, qu'ils soient positifs ou négatifs. Ceci n'est pas disponible en C et C++.

6. C++ introduit le mécanisme de surcharge d'opérateurs, qui n'est pas pris en charge par Java, mais vous pouvez implémenter vos propres opérateurs surchargés en C#.

7. Java nous permet de convertir n'importe quel type de données de base en d'autres types de données de base, à l'exception des types booléens. [Tutoriels vidéo associés recommandés : Tutoriel vidéo Java]

8. Java n'a pas Sizeof(). En CC++, l'opérateur sizeof() peut nous indiquer le nombre d'octets alloués à un élément de données, car différents types de données en C++ peuvent avoir des tailles différentes sur différentes machines. Mais tous les types de données en Java ont la même taille sur toutes les machines. (Par exemple, l'int de C++ est de 16 bits sur les machines 16 bits, de 32 bits sur les machines 32 et supérieures, le long est de 32 bits sur les machines 32 bits et inférieures, et de 64 bits sur les machines 64 bits)

9, C++ Il y a goto, mais Java n'a pas de goto.

Java propose un mécanisme de saut similaire : les balises. Libellé d'utilisation :

label1:
outer-iteration{
        inner-iteration{
    break;(1)
    continue;(2)
    continue label1;(3)
break label1;(4)

}
}
  • (1), break interrompt l'itération interne et revient à l'itération externe

  • (2), continue déplace le point d'exécution au début de l'itération interne.

  • (3), continuez l'itération interne du terminal label1 et l'itération externe en même temps, allez directement à label1 puis continuez l'itération, en commençant par l'itération externe.

  • (4) break label1 interrompra également toutes les itérations et reviendra à label1, mais ne réintégrera pas l'itération. Autrement dit, deux itérations sont complètement terminées.

10. Le destructeur en C++ offre la possibilité de libérer les ressources occupées par l'objet avant qu'il ne soit supprimé, mais Java ne fournit pas de « destructeur » ou de concept similaire. [Tutoriels vidéo associés recommandés : Tutoriel vidéo C++]

En C++, l'objet sera définitivement détruit (si le programme ne présente aucun défaut

En Java, les objets) ; ne sont pas toujours ramassés. (Le garbage collection n'équivaut pas à "destruction")

11. Masquage du nom

Si la classe de base de Java a un nom de méthode qui a été surchargé plusieurs fois, alors dans la classe dérivée Redéfinir le nom de la méthode n'en bloque aucune version dans la classe de base. Si C++ souhaite introduire une nouvelle méthode surchargée dans une sous-classe, il doit protéger la méthode de la classe de base.

12. Il existe plusieurs héritages en C++, mais il n'y a qu'un seul héritage en Java. Java peut implémenter plusieurs héritages via des interfaces.

13. Java est semi-interprété et semi-compilé, et s'exécute plus lentement que C++.

14. Java n'a pas de Struct ou d'Union

15. Les génériques de Java ne permettent pas l'utilisation de types de données de base.

16. Tableau

  • En c++, lorsqu'un tableau est défini, l'espace de stockage a été alloué et peut être utilisé. (Spécifiez la taille du tableau lors de la définition)

  • En Java, lorsque le tableau est défini, int arr[] ne définit que la variable du tableau littéralement, et le tableau ne peut pas être utilisé. Ce n'est qu'après la création de la baie que la baie sera créée, l'espace de stockage alloué et disponible pour utilisation. (Il est illégal de spécifier la taille du tableau lors de la définition. Spécifiez la taille du tableau lors de la création)

17 C++ a des pointeurs, mais pas Java.

18. Vous trouverez ci-joint une comparaison des principales longueurs de C++ dans les systèmes 32 bits et 64 bits :

Quelle est la différence entre Java et C++

Pour plus de connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn