Heim > Java > javaLernprogramm > Was sind die Unterschiede zwischen Java und C-Sprache?

Was sind die Unterschiede zwischen Java und C-Sprache?

青灯夜游
Freigeben: 2019-11-16 13:30:54
Original
14187 Leute haben es durchsucht

Was sind die Unterschiede zwischen Java und C-Sprache?

Was sind die Unterschiede zwischen Java und C-Sprache?

1. Java- und C-Speicherzuordnung sind unterschiedlich:

Java verfügt über fünf Speicherzuordnungsbereiche, die Stapelbereiche sind (lokaler Speicher ist Variablen). , wird sofort nach der Verwendung recycelt), Heap-Bereich (speichert neue Dinge, Entitäten, Objekte, jedes Objekt hat einen Adresswert und die Daten jedes Objekts haben einen Standardwert. Nach der Verwendung werden sie im Müll gesammelt. Beim Prozessor recycelt ist inaktiv), Methodenbereich, lokaler Methodenbereich (bezogen auf das System) und Registerbereich (von der CPU verwendet). [Empfohlenes Lernen: Java-Kurs]

Die C-Speicherzuweisung hat vier Bereiche, nämlich den Stapelbereich (Speichern von Funktionsparametern und Werten lokaler Variablen) und den Heap-Bereich (dynamische Speicheranwendung und -freigabe). ) Wenn der Programmierer den Speicher nicht freigibt, kann er nach Programmende vom Betriebssystem freigegeben werden), globaler Bereich (statischer Bereich), Codebereich.

2. Funktionen

1) Für Variablen und Funktionen muss C Deklarationen und Definitionen implementieren, während Java nur Definitionen hat, keine Deklarationen; > 2) Da C nicht objektorientiert ist, sind alle globalen Variablen und Funktionen in C im Wesentlichen statisch für Java. Java ist eine objektorientierte Sprache, die die Deklaration von Funktionen außerhalb von Klassen und Schnittstellen, einschließlich Hauptfunktionen und Variablen, nicht zulässt. In C ist es üblich, eine große Anzahl globaler Variablen in einer Datei zu definieren und diese Variablen als Referenz in anderen Dateien zu deklarieren, aber Java erlaubt keine globalen Variablen oder Funktionen

3) Wann C Wenn der Typ des Rückgabewerts der Funktion nicht mit dem deklarierten Typ übereinstimmt, wird der Rückgabewert der Funktion automatisch in diesen Typ konvertiert, bevor die Funktion in dieser Situation zurückkehrt. In Java muss eine erzwungene Typkonvertierung hinzugefügt werden

4) Die Reihenfolge der Funktionsaufrufparameterberechnung in C ist undefiniert, während Java eine Reihenfolge von links nach rechts hat

5) Wenn eine Variable oder Funktion in C in einer anderen Datei definiert ist, Die Variable oder Funktion muss mit extern deklariert werden. Sie sind beim Kompilieren der einzelnen Dateien nicht sichtbar, wohl aber während der Verknüpfungsphase. Der Java-Compiler verfügt nicht über eine solche Linkphase und alle erforderlichen Dateien müssen zur Kompilierungszeit sichtbar sein.

6) Sowohl C- als auch Java-Programme starten die Ausführung von der Hauptfunktion aus. Die Hauptfunktion in C erfordert im Allgemeinen zwei Parameter: argc und argv. argc enthält die Anzahl der Befehlszeilenparameter, und argv enthält die tatsächlichen Befehlszeilenparameter. In Java muss stringargs [] als Methodenparameter verwendet werden die laufenden Systembefehlszeilenparameter, die beim Starten einer Java-Anwendung verwendet werden;

7) Die Exit-Funktion kann in C aufgerufen werden, und die Abbruchfunktion kann in C verwendet werden, um ein abnormal beendetes Programm zu beenden , und es gibt keine entsprechende Strategie in Java.

3. Vergleich von Präprozessoren und Header-Dateien

Java hat keinen Präprozessor und keine Header-Dateien; in C empfängt der Präprozessor nur etwas Text und wird in anderen umgewandelt Text, und der Compiler kompiliert das vorverarbeitete Quellprogramm. In C werden Header-Dateien normalerweise zum Deklarieren von Prototypen, globalen Variablen, Bibliotheksfunktionen usw. verwendet.

4. In Bezug auf die Verwendung

C-Sprache: Reines C wird im Allgemeinen in eingebetteten Systemen verwendet, um Programme der untersten Ebene zu schreiben, da seine Sprache am einfachsten ist mit Hardware verbinden. Kann Folgendes tun: eingebettete Low-Level-Software, Betriebssystem, verschiedene Funktionsbibliotheken, Kerncode der Motorbibliothekssoftware, serverseitige Low-Level-Tools.

JAVA: J2EE, J2SM, J2ME, alles. Was Sie tun können: Entwicklung eingebetteter Anwendungssoftware für mobile Geräte, Entwicklung der Hintergrundlogik für Webseiten, einige Desktop-Programme

C, JAVA kann tatsächlich in verschiedenen Bereichen verwendet werden.

5. In Bezug auf den Betriebsmodus:

C-Sprache: Das ursprüngliche C ist prozessorientiert, dh zeilenweise ausgeführt.

JAVA: Absolut objektorientiert und modulweise ausgeführt.

(Ergänzung: In C++ und C# wurde C natürlich auch in den objektorientierten Modus umgewandelt)

Andere Syntax:

Die C-Sprache kann den Speicher direkt bedienen, Java kann ihn jedoch nicht direkt bedienen.
  • Die C-Sprache kann dynamische Bibliotheken kapseln, Java jedoch nicht 🎜>
  • C-Sprachcode ist nicht einfach plattformübergreifend und Java-Code ist einfach plattformübergreifend
  • C-Sprache hat Zeiger, Java hat keine Zeiger
  • Die C-Sprache kann die serielle Schnittstelle direkt bedienen, und Java erfordert die Unterstützung von JAR-Paketen von Drittanbietern.
  • C-Sprachthreads sind flexibler Java-Threads wurden gekapselt;
  • Die in C verfügbaren Bezeichner sind Zahlen, Groß- und Kleinbuchstaben sowie Unterstriche und können nicht mit einer Zahl beginnen; In C enthalten die in Java verfügbaren Bezeichner ein Dollarzeichen ($), das ebenfalls nicht mit einer Zahl beginnen kann.

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen Java und C-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage