Java Datentypen |
| byte | 8 Bit | float | 32 Bit |
| short | 16 Bit | double | 64 Bit |
| int | 32 Bit | char | 16 Bit |
| long | 64 Bit | boolean | 8 Bit |
final int MAXFACH = 25; |
Felder
Wie bei C beginnt der Index bei 0. Die Definition erfolgt normalerweise
in zwei Schritten. Zunächst wird ein Array deklariert. Dabei wird
statt der Größe nur leere rechteckige Klammern angegeben.
Die so deklarierte Variable ist kein Zeiger, aber ein
Referenztyp.
int meinFeld[]; meinFeld = new int[99]; |
Das Feld wird erst durch den new-Operator alloziiert. Danach ist die
Größe des Feldes nicht mehr änderbar.
Steht von vornherein die Größe fest, kann aber auch
beides in einem Schritt erfolgen.
int[] meinFeld = new int[99]; |
Es ist auch möglich, ein Feld mit Werten vorzubelegen. Auch hier erfolgt Deklaration und Alloziierung in einem Schritt. Die Dimension des Feldes ergibt sich aus der Anzahl der vorgegebenen Werte.
int[] meineFinger = {1,2,3,4,5};
|
Mehrdimensionale Felder sind analog:
int meinFeld[][][]; meinFeld = new int[9][4][2]; |
Alle Felder besitzen eine Instanzvariable namens length, mit der
man deren Länge ermitteln kann.
Das folgende Listing zeigt dies am Beispiel eines Arrays:
Referenztypen
Objekte und Arrays (genaugenommen auch Strings) sind Referenztypen.
Das bedeutet, dass die
Variable nicht den Speicher direkt repräsentiert, sondern nur eine
Referenz auf die Daten hält. Beim Zugriff auf die Daten ist der
Unterschied nicht sichtbar. Aber sobald man eine Referenzvariable kopiert,
wird nicht etwa ein Duplikat der Daten angefertigt, sondern eine zweite
Referenz auf die gleichen Daten. Will man eine Kopie der Daten, verwendet
man clone. Das Gleiche gilt für die Abfrage auf Gleichheit.
Wird der == Operator verwendet, wird geprüft, ob beide Variablen auf
denselben Datensatz zeigen. Will man also feststellen, ob der
gleiche Inhalt in beiden Variablen steht, verwendet man die
Methode equals.
class arrayRef
{
public static void main (String[] arg)
{
int a[] = { 1,2,3,4,5};
int b[] = a; // b referenziert auf a
b[2] = 25; // auch a[2] wird veraendert!
// Zeig das Array:
for (int i=0; i<5; i++) {
System.out.print( i );
System.out.print( " " );
System.out.print( a[i] );
System.out.print( " " );
System.out.println( b[i] );
}
}
}
|
Das Programm wird zeigen, dass b[2] den gleichen Inhalt wie a[2] hat. Verhindert wird dies durch den Aufruf von clone().
int b[] = a.clone(); // b referenziert auf einer Kopie von a
|
| + | unär | positives Vorzeichen |
| - | unär | negatives Vorzeichen |
| + | binär | Summe |
| - | binär | Differenz |
| * | binär | Produkt |
| / | binär | Quotient |
| % | binär | Modulo (Rest) |
| ++ | unär | Inkrement |
| -- | unär | Dekrement |
| Zeichen | Bedeutung |
|---|---|
| == | gleich |
| != | ungleich |
| < | kleiner |
| <= | kleiner oder gleich |
| > | größer |
| >= | größer oder gleich |
| && | UND mit Shortcut |
| & | UND ohne Shortcut |
| || | ODER mit Shortcut |
| | | ODER ohne Shortcut |
| ^ | exklusiv ODER (XOR): beide Wahrheitswerte unterscheiden sich |
| ! | NOT |
| Homepage - Java | (C) Copyright 1999, 2000, 2001 Arnold Willemer |