Zusammenfassung
January 10, 2021•327 words
Rekursion
Lineare Rekursion - es gibt in jedem Rekurionsschritt genau einen Aufruf
private static int sumRecursive(int sum) {
if (num <= 1) {
return 1;
} else {
return sumRecursive(num - 1) + num;
}
}
Endrekursion - jeder rekursive Aufruf ist die letzte Aktion der Methode
private static int gcdRecursive(int a, int b) {
if (a == b) {
return a;
} else if (a > b) {
return gcdRecursive(a - b, b);
} else {
return gcdRecursive(a, b - a);
}
}
Verschachtelte Rekursion - Argumente bei einem rekursiven Aufruf sind selbst wieder Rekursionsaufrufe
private static int modulo(int a, int b) {
if (a < b) {
return a;
} else if (a < 2 * b) {
return a - b;
} else {
return modulo(modulo(a, 2 * b), b);
}
}
Wechselseitige Rekursion - Der rekursive Aufruf erfolgt indirekt
private static boolean even(int n) {
if (n == 0) {
return true;
}
return odd(n - 1);
}
private static boolean odd(int n) {
if (n == 0) {
return false;
}
return even(n - 1);
}
Arrays
Alle Array-Elemente werden automatisch initialisiert mit:
0beiint, byte, short0Lbeilong0.0fbeifloat0.0dbeidouble\u0000falsebeibooleannullbeiString(und anderen Referenztypen)
Eine Array-Variable ist nur eine Referenz auf das eigentliche Array-Objekt.
Bei Übergabe eines Arrays an eine Methode wird die Referenz kopiert. Änderungen sind außerhalb der Methode sichtbar.
| Eigenschaft | Erklärung |
|---|---|
| Identität | Zwei Werte bzw. Objekte sind identisch, wenn die Anwendung von „==“ true liefert |
| Gleichheit | Wenn auch referenzierte Objekte in den Vergleich miteinbezogen werden |
| Unterscheidung | Gleiche Werte von elementaren Typen (z. B. int) sind immer identisch, Identische Objekte (z. B. Arrays) sind stets gleich, Gleiche Objekte (z. B. Arrays mit gleichem Inhalt) müssen aber nicht identisch sein |