Maison  >  Article  >  Java  >  Quelles sont les différences entre les langages Java et C ?

Quelles sont les différences entre les langages Java et C ?

青灯夜游
青灯夜游original
2019-11-16 13:30:5414078parcourir

Quelles sont les différences entre les langages Java et C ?

Quelles sont les différences entre le langage Java et le langage C ?

1. L'allocation de mémoire Java et C est différente :

Java a cinq zones d'allocation de mémoire, qui sont des zones de pile (le stockage local est constitué de variables). , recyclé immédiatement après utilisation), zone de tas (stocke de nouveaux objets, entités, objets, chaque objet a une valeur d'adresse et les données de chaque objet ont une valeur par défaut. Après utilisation, il sera collecté à la poubelle recyclé lorsque le processeur est inactif), la zone de méthode, la zone de méthode locale (liée au système) et la zone de registre (utilisée par le processeur). [Apprentissage recommandé : cours Java]

L'allocation de mémoire C comporte quatre zones, à savoir la zone de pile (stockage des paramètres de fonction et des valeurs des variables locales), la zone de tas (application et libération de mémoire dynamique ), si le programmeur ne libère pas la mémoire, elle peut être libérée par le système d'exploitation après la fin du programme), zone globale (zone statique), zone de code.

2. Fonctions

1) Pour les variables et les fonctions, C doit implémenter des déclarations et des définitions, alors que Java n'a que des définitions, pas de déclarations

2) Puisque C n'est pas orienté objet, toutes les variables et fonctions globales en C sont essentiellement statiques pour Java. Java est un langage orienté objet, qui ne permet pas de déclarer des fonctions en dehors des classes et des interfaces, y compris les fonctions principales et les variables. En C, il est courant de définir un grand nombre de variables globales dans un fichier, et de déclarer ces variables par référence dans d'autres fichiers pour réaliser le partage, mais Java n'autorise pas les variables ou fonctions globales

3) Quand ; C Lorsque le type de la valeur de retour de la fonction ne correspond pas au type déclaré, la valeur de retour de la fonction sera automatiquement convertie en ce type avant le retour de la fonction ; face à cette situation en Java, une conversion de type forcée doit être ajoutée ;

4) L'ordre de calcul des paramètres d'appel de fonction en C n'est pas défini, alors que Java a un ordre de gauche à droite

5) Si une variable ou une fonction en C est définie dans un autre fichier, La variable ; ou la fonction doit être déclarée en utilisant extern. Ils ne sont pas visibles lors de la compilation des fichiers individuels, mais le sont lors de la phase de liaison. Le compilateur Java n'a pas une telle phase de liaison, et tous les fichiers requis doivent être visibles au moment de la compilation

6) Les programmes C et Java démarrent l'exécution à partir de la fonction principale ; La fonction main en C nécessite généralement deux paramètres, argc et argv. argc contient le nombre de paramètres de ligne de commande, et argv contient les paramètres de ligne de commande réels ; main en Java doit utiliser stringargs[] comme paramètre de la méthode utilisée. pour recevoir les paramètres de ligne de commande du système en cours d'exécution utilisés lors du démarrage d'une application Java ;

7) La fonction exit peut être appelée en C et Java pour terminer le programme ; la fonction abort peut être utilisée en C pour quitter anormalement ; programme terminé, et il n'y a pas d'équivalent dans la stratégie correspondante Java.

3. Comparaison des préprocesseurs et des fichiers d'en-tête

Java n'a pas de préprocesseur ni de fichiers d'en-tête en C, le préprocesseur reçoit juste du texte et il est converti en un autre ; texte, et le compilateur compile le programme source prétraité. En C, les fichiers d'en-tête sont généralement utilisés pour déclarer des prototypes, des variables globales, des fonctions de bibliothèque, etc.

4. En termes d'utilisation

Langage C : Le C pur est généralement utilisé dans les systèmes embarqués pour écrire les programmes de plus bas niveau, car son langage est le plus simple à utiliser. se connecter au matériel. Peut faire : logiciel de bas niveau intégré, système d'exploitation, diverses bibliothèques de fonctions, code de base du logiciel de bibliothèque de moteur, outils de bas niveau côté serveur.

JAVA : J2EE, J2SM, J2ME, n'importe quoi. Ce que vous pouvez faire : Développement de logiciels d'applications pour appareils mobiles intégrés, développement de logique d'arrière-plan de pages Web, certains programmes de bureau

C, JAVA peuvent en fait être utilisés dans divers domaines.

5. En termes de mode de fonctionnement :

Langage C : Le C original est orienté processus, c'est-à-dire exécuté ligne par ligne.

JAVA : Absolument orienté objet et exécuté par module.

(Supplément : Bien entendu, en C++ et C#, le C s'est également converti en mode orienté objet)

Syntaxe différente :

    Le langage C peut exploiter directement la mémoire, mais Java ne peut pas l'exploiter directement ;
  • Le langage C peut encapsuler des bibliothèques dynamiques, mais Java ne le peut pas ; 🎜>
  • Le code du langage C n'est pas facile à multiplateforme, et le code Java est facile à multiplateforme ;

  • Le langage C a des pointeurs, Java n'a pas de pointeurs ; 🎜>

  • Le langage C peut exploiter directement le port série, et Java nécessite la prise en charge des packages jar tiers
  • Les threads du langage C sont plus flexibles ; Les threads Java ont été encapsulés ;
  • Les identifiants disponibles en C sont des chiffres, des lettres majuscules et minuscules et des traits de soulignement, et ne peuvent pas commencer par un chiffre en plus des trois types d'identifiants disponibles ; en C, les identifiants disponibles en Java incluent un signe dollar ($), qui ne peut pas non plus commencer par un chiffre.

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
Article précédent:Java est-il utile ?Article suivant:Java est-il utile ?