Heim  >  Artikel  >  Java  >  Was ist der Unterschied in der Syntax zwischen Java und C?

Was ist der Unterschied in der Syntax zwischen Java und C?

青灯夜游
青灯夜游Original
2019-11-15 15:26:512797Durchsuche

Was ist der Unterschied in der Syntax zwischen Java und C?

Was ist der Syntaxunterschied zwischen Java und C?

1. Bezeichner:

C Verfügbare Bezeichner sind Zahlen, Groß- und Kleinbuchstaben sowie Unterstriche und dürfen nicht mit Zahlen beginnen : C-Sprach-Tutorial]

Zusätzlich zu den drei in C verfügbaren Arten von Bezeichnern verfügt Java über ein weiteres Dollarzeichen ($), das ebenfalls nicht mit einer Zahl beginnen kann. [Empfohlenes Lernen: Java-Kurs]

2. Schlüsselwörter:

Die Schlüsselwörter in C sind:

auto break case char const

continue default do double else

enum extern float for goto

if int long register return

short signiert sizeof static struct

switch typedef union unsigned void

volatile while

Die Schlüsselwörter in Java sind:

abstract boolean break byte case

catch char class continue default

do double else extensions false

final Finally float for if

implementiert import instanceof int interface

long native new Null-Paket

private protected public return short

dies löst transient true aus

versuchen Sie es mit einem statischen Super-Switch synchronisiert

void volatile while

3. Datentypen:

Die Datentypen in C sind:

  1. Basistyp: Ganzzahl (Basis-Ganzzahltyp int, kurze Ganzzahl). Typ short[int] und long ganzzahliger Typ long [int], sowie vorzeichenbehafteter Typ [signed], vorzeichenloser Typ unsigned), Zeichentyp [signed/unsigned]char, Gleitkommatyp (einfache Genauigkeit float, doppelte Genauigkeit double und long). double precision long double), Aufzählungstyp

  2. Konstruktionstyp: Array-Typ, Strukturtyp, Union-Typ

  3. Zeigertyp

  4. Leerer Typ

Beachten Sie die Anzahl der Bytes, die im Allgemeinen von jedem Typ belegt werden:

int: 2 Bytes

short: 2 Bytes

long: 4 Bytes

char: 1 Byte

float: 4 Bytes

double: 8 Bytes

long double: 16 Bytes

Zusätzlich zum Zeichentyp unterscheidet sich die oben genannte Speicherung je nach System geringfügig, die Anzahl der Ziffern mit niedriger Genauigkeit kann jedoch die hohe Genauigkeit nicht überschreiten.

Datentypen in Java:

  1. Grundtypen: Zeichentyp (char), numerischer Typ (Ganzzahltyp (Bytetyp Byte, kurze Ganzzahl). Typ Short, Integer-Typ Int, Long Integer-Typ Long), Gleitkommatyp (Float mit einfacher Genauigkeit, Double mit doppelter Genauigkeit), Boolescher Typ (Boolescher Wert (wahr oder falsch))

  2. Composite Typen: Klassen, Schnittstellen, Arrays

Beachten Sie die Anzahl der von jedem Speichertyp belegten Bytes:

Byte: 1 Byte

short: 2 Bytes

int: 4 Bytes

long: 8 Bytes

char: 2 Bytes (Unicode-Kodierung)

float: 4 Bytes

double: 8 Bytes

Der den oben genannten Datentypen entsprechende Speicherplatz hat nichts mit der Plattform zu tun und ist auf diesen Wert festgelegt.

4. Konstanten und Variablen

1) Konstanten

Die Definition von Ganzzahlkonstanten in Java und C ist dieselbe, mit Ausnahme von lange ganzzahlige Daten Mit Ausnahme des Hinzufügens von l oder L am Ende zeigen andere Typen numerische Werte direkt an. Vorzeichenlosen Konstanten in C wird ein u oder U vorangestellt. Für verschiedene Basen zeigt die Dezimalzahl direkt an, dass das höchste Bit nicht 0 enthalten darf, die Oktalzahl beginnt mit 0 und die Hexadezimalzahl beginnt mit 0x oder 0X.

Für Gleitkommatypen können sowohl C als auch Java nur die Dezimaldarstellung verwenden. Dezimalform und Exponentialform können verwendet werden. Wenn die Exponentialform ausgedrückt wird, werden Dezimalzahl und Exponent durch e oder E getrennt. Beachten Sie, dass Java zur Unterscheidung f oder F nach einfacher Genauigkeit und d oder D nach doppelter Genauigkeit benötigt.

Zeichenkonstanten werden durch ein einzelnes Zeichen oder eine in einfache Anführungszeichen eingeschlossene Escape-Zeichenfolge dargestellt. Beachten Sie insbesondere, dass der Zeichentyp in C nur Zeichen mit ASCII-Codes von 0 bis 255 darstellen kann. Java verwendet 2-Byte-Speichereinheiten mit Unicode-Kodierung, um Sonderzeichen darzustellen. Bei der Darstellung der Unicode-Kodierung werden u plus 4-stellige hexadezimale Zeichenfolgen verwendet.

Der Typ Boolean ist nur in Java verfügbar, daher ist besondere Aufmerksamkeit erforderlich.

Konstanten in Java werden mit dem Schlüsselwort final geändert, das nach der Zuweisung in C nicht geändert werden kann. Das Schlüsselwort, das nicht geändert werden kann, ist const und die Variable, die es ändert (beachten Sie, dass es sich um eine Variable handelt, nicht um eine Variable). Konstante) muss bei der Definition ein Anfangswert zugewiesen werden. Darüber hinaus haben mit #define definierte Makrokonstanten keinen Typ.

2) Variablen

Die Definitionen von Variablen in Java und C sind grundsätzlich gleich, das heißt:

数据类型变量名[ = 变量初值];

Variablen kann ein Anfangswert zugewiesen werden oder nicht, aber lange Ganzzahlen in Java und Das entsprechende Identifikationszeichen (z. B. l, f) muss nach der Gleitkommazahl hinzugefügt werden.

Besonderer Hinweis: Aufgrund von Unterschieden bei den Compilern müssen C-Deklarationsvariablen vor ausführbaren Anweisungen platziert werden, da sonst Kompilierungsfehler auftreten können.

5. Logische Operatoren und bitweise Operatoren

In C und Java sind drei logische Operatoren &&, || und verfügbar Die gleiche Bedeutung besteht darin, dass das Operationsergebnis in C 0 oder nicht 0 ist, in Java jedoch nur wahr oder falsch sein kann. Es gibt auch &, |, ^ (XOR) in Java. Der Unterschied zwischen & und &&, | und || besteht darin, dass es sich bei ersterem um einen Verknüpfungsoperator handelt, d und nach &, und wenn vor && falsch, wird kein Urteil gefällt. Wenn || vorher und nachher wahr ist, wird kein Urteil gefällt. ^ bedeutet, dass beide gleich und falsch sind.

Die in C und Java verfügbaren bitweisen Operatoren sind: &, |, ^, ~(取反), fa31cdae4631344b6c1dc2bfd41c228e>(右移), mit grundsätzlich derselben Bedeutung. Die Rechtsverschiebung negativer Zahlen in C unterscheidet sich je nach System (es kann eine arithmetische Rechtsverschiebung oder eine logische Rechtsverschiebung sein), während >> in Java eine arithmetische Rechtsverschiebung darstellt, d. h. das höchste Bit mit dem Vorzeichenbit gefüllt. Der logische Rechtsverschiebungsoperator (vorzeichenlose Rechtsverschiebung) in Java ist >>>, der eine komplementäre Rechtsverschiebung verwendet und 0 zum High-Bit hinzufügt.

PS: Aufmerksame Leser werden möglicherweise feststellen, dass das Ausgabeergebnis nach Verwendung der Methode >>> für die vorzeichenlose Rechtsverschiebung bei der Definition einer negativen Bytezahl oder eines Kurztyps -5 beträgt . Dem oben Gesagten zufolge sollte das Hinzufügen von 0 zur oberen Position eine positive Zahl sein. Der Typ int oder long ist keine negative Zahl. Warum ist das so? Ich denke, das liegt daran, dass der niedrigste Datentyp, den Java beim Ausführen von >>>-Operationen verwendet, der Typ int ist, was dazu führt, dass die Daten höherer Ordnung alle 1 sind (die im Computer gespeicherten Daten werden also im Zweierkomplement gespeichert). negatives Byte oder Short Der Typ wird in den Typ int konvertiert und die High-Bits werden vollständig mit 1 gefüllt. Beim Verschieben wird die letzte 1 in den High-Bits auf das erste Bit in den Low-Bits verschoben und dann in den Datentyp abgefangen Wir haben (Byte oder Short) definiert, sodass die Zahl, die wir sehen, immer noch eine negative Zahl ist. Hier können wir erkennen, dass wir beim Ausführen von >-Operationen an Byte- und Kurztypdaten möglicherweise nicht den gewünschten Wert erhalten. Seien Sie also vorsichtig.

6. Array

Die Definition eines Arrays in C lautet wie folgt:

类型说明符数组名[常量表达式];

Die Definition kann gleichzeitig mit dem durchgeführt werden Initialisierung, wie zum Beispiel: int a[10] = {0,1,2,3,4,5,6,7,8,9};in Klammern Die Konstanten können weggelassen werden.

Es gibt zwei Möglichkeiten, Arrays in Java zu definieren:

数据类型数组名[];
//或
数据类型 []数组名;

Definition und Initialisierung können gleichzeitig erfolgen, wie zum Beispiel: int []a = {0,1,2,3,4,5,6,7,8,9};

Hinweis: Falls vorhanden ist in Java kein Array, wenn es definiert ist. Zum Initialisieren müssen Sie bei der Initialisierung zuerst Speicher zuweisen, das heißt:

数组名 = new 数据类型[常量表达式];

Sie können auch gleichzeitig mit der Definition Speicher zuweisen:

数据类型数组名[] = new 数据类型[常量表达式];

Weder C noch Java unterstützen Arrays variabler Länge, referenziert auf It’s all 数组名[下标] die ganze Zeit. Der Unterschied ist:

Der Indexbereich von Java ist 0~Array-Länge-1. Wenn er nicht in diesem Bereich liegt, wird eine Array-Index-Ausnahme außerhalb der Grenzen ausgelöst und der gültige Bereich von C ist ebenfalls 0~Array-Länge-1, es wird jedoch kein Fehler gemeldet, wenn der Index diesen Grenzwert überschreitet.

In einem mehrdimensionalen Array sind die Array-Elemente in Zeilen angeordnet.

Noch etwas zu beachten: Wenn ein Array in C ohne Initialisierung definiert wird, sind die Array-Elementwerte unvorhersehbar, während in Java das Array einen Standardwert hat, wenn Speicher ohne Initialisierung zugewiesen wird Wert.

7. Anweisungen

Es gibt keinen großen Unterschied zwischen C- und Java-Anweisungen, hauptsächlich:

1) C direkt beim Aufrufen von Methoden /functions Beim Aufrufen einer Funktion oder beim Aufrufen einer Methode in Java muss der Objektname vor dem Methodennamen hinzugefügt werden.

2) In C ist es möglich, dass zwei verschachtelte zusammengesetzte Anweisungen gleichzeitig Variablen mit demselben Namen definieren, in Java jedoch nicht.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied in der Syntax zwischen Java und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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