OCP open points
some open points
some open points
Fichier Détails
Cartes-fiches | 90 |
---|---|
Langue | Deutsch |
Catégorie | Informatique |
Niveau | Autres |
Crée / Actualisé | 09.01.2020 / 10.01.2020 |
Lien de web |
https://card2brain.ch/box/20200109_ocp_open_points
|
Intégrer |
<iframe src="https://card2brain.ch/box/20200109_ocp_open_points/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was bedeutet "multiple inheritance of state"?
Dass Felder von mehreren Klassen geerbt werden können. Geht in Java nicht.
Was bedeutet multiple inheritance of implementation?
Dass Implementierungen von Methoden von mehreren Klassen geerbt werden können. Gibt es in java bswp mit default/static-methoden in interfaces
Was ist multiple inheritance of type?
Dass eine Klasse mehrere Interfaces implementieren kann
Wie geht die Subtype-hierarchie bei generics mit extends (A<? extends S) .. ?
A<S> <<<<< A<? extends S> <<<<< A<? extends T>
z.B. Integer <<< Number, List<Integer> <<<< List<? Extends Integer> <<< List<? Extends Number>
Wie geht die Subtype-hierarchie bei generics mit super (A<? super T) .. ?
A<T> <<< A<? super T> <<< A<? super S>
z.B. List<Number> <<< List<? Super Number> <<< List<? Super Integer>
Können statische Methoden zusätzlich abstrakt sein?
Nein!
Kann man das default-package importieren?
Nein, etwas wie import *; existiert nicht
Was gibt es für Optionen um ein statisches Feld aus einer Klasse zu importieren? z.B.:
package taxes;
public class Values {
public static double TAX_RATE = 0.15;
}
1. Über den FQN nutzen: taxes.Values.TAX_RATE;
2. import taxes.Values; oder import taxes.*; dann: Values.TAX_RATE
3. import static taxes.Values.TAX_RATE; oder import static taxes.Values.*; dann einfach TAX_RATE
Welches Package wird immer automatisch importiert?
java.lang
Ist java statisch oder dynamisch typisiert?
statisch, dynamisch typisierte können den datentyp zur runtime ändern
Wertebereich byte
-128 bis 127
Wertebereich char
0 - 65535
Wertebereich short
-32768 bis 32767
Wertebereich int
-2^31 - 2^31-1
Wertebereich long
-2^63 - 2^61-1
Wie geht die subtypehierarchie bei primitiven Datentypen?
double > float > long > int > char
int > short > byte
Was bedeutet es dass eine konstante nur initialisiert werden kann wenn sie eine compile time constant ist?
Wenn die initialisierung von code abhängt mekkert der compiler (bspw. konstanten-initialisierung in if, ggfls uninitialisiert in else? --> variable von der das if abhängt müsste final sein damit der compiler es rafft)
Kann man ein char auch hexadezimal angeben?
Ja
Was besagt "implicit narrowing"?
Man kann eine compile time constant in eine andere Variable eines anderen Typen packen wenn sie passen würde, der compiler "narrows the value automatically down to the smaller type"
Was bedeutet "explicit narrowing"?
Casting - wenn der wert größer ist als in den neuen Datentyp eigentlich passt überlauf -> fängt wieder beim kleinsten Wert des Datentyps an!
Ist ein implicit widening von int to float okay?
Wie schaut es umgekehrt aus?
int to float ist okay, float to int braucht cast
Ist ein implicit widening von long to double okay?
Wie ist es umgekehrt?
long to dobule ist okay, double to long braucht cast
Wo kann die var-deklaration überall nicht benutzt werden?
- class/instance members
- method parameters
- uninitialisierte variablen
- kan nnicht auf null gesetzt werden ( was wäre der typ)
- [] kann nicht an var geklept werden weil var kein typ ist
- bei arrays muss der typ spezifiziert werden: var arr = new int[]{1,2};
- als returntype
Was ist die Oberklasse/Interface von String?
Oberklasse Object, implementiert java.lang.CharSequence
Würde das funktionieren?:
Object m = 1;
m += "2";
System.out.println(m);
Ja, 1 wird erst in ein Integer-objet geboxed. Da "2" ein String ist wird eine String-Konktaenation ausgeführt und in m gepackt
Würde das funktionieren?
Object m = "Hello";
m += 1;
System.out.println(m);
Nein, m ist ein object, 1 ist int. Bei m = m + 1 ist also nichts ein String -> keine Stringkonkatenation
Was returned string.replace oder strip/.. wenn nichts geändert wird?
Den selben string
Was gibt es für Konstruktoren für StringBuilder?
- StringBuilder(String str)
- StringBuilder(int capacity)
- StringBuilder(CharSequence seq)
- StringBuilder()
Auf was muss man aufpassen bei der Verwendung von Wrappern für primitive datentypen?
Sie sind immutable, d.h. bei bswp ++ wird nicht der Wert tatscählich erhöht sondern ein neuer (erhöhter) Wert zugewiesen!
Was ist die Ausgabe von:
byte b = 1;
short s = -b;
System.out.println(b);
"error: incompatible types: possible lossy conversion from int to short"
-> numeric promotion, -b wird zu int gecasted und passt nicht in short ohne expliziten cast. --b würde gehen da hier automatisch gecasted werden würde
Was ist der Wert von s2?
short s1 = 1;
short s2 = + s1;
Compiled nicht, ergebnis wäre ein int! (++s1 würde gehen da hier ein cast davor kommen würde)
Was wäre der Wert von b?
short s1 = 1;
byte b = s1 + 2;
Compiled nicht, ergebnis wäre ein int
Was wäre der Wert von b?
final int i = 10;
byte b = i + 2;
12 , geht weil i eine compile time constant ist und das ergebnis in byte passt
Gelten die Regeln der numeric promotion auch für += usw?
Nein, hier wird wie bei ++ gecasted
Was wäre der WErt von b?
int i = 0;
byte b = (byte) i + 1;
Compiled nicht, erst wird i zu byte gecasted, dann wieder zu int wegen + 1
Was sind Besonderheiten des ternary operators?
- hat immer eine Rückgabe
- ist short-circuiting --> wird immer nur eine Möglichkeit ausgeführt!
Was ist die Ausgabe?:
int x = 0;
int y = 1;
System.out.println(x>y? ++x: y++);
System.out.println(x + " " + y);
1
0 2
Welche Datentypen können nicht in einem switch vorkommen?
long,boolean,float,double
Braucht ein switch-case-block ein case label?
Nein
Wäre das ok?
byte b = 10;
switch(b) {
case 1000: ....
}
Nein, 1000 passt nicht in byte