OCP open points
some open points
some open points
Kartei Details
Karten | 90 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Andere |
Erstellt / Aktualisiert | 09.01.2020 / 10.01.2020 |
Weblink |
https://card2brain.ch/box/20200109_ocp_open_points
|
Einbinden |
<iframe src="https://card2brain.ch/box/20200109_ocp_open_points/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Gibt es eine notwendige Ordnung bei switch-case-blöcken?
Nein, ein default am anfang macht nur keinen sinn, wäre aber möglich
Wann kann man die for-each-schleife benutzen?
Bei arrays oder objekten die das Interface java.util.Iterable implementieren
Was sagt der compiler hier?
String [] names = {"name","name2"];
for(int i = 0; i < names.length; i++) {
continue;
System.out.println("something");
}
unreachable code
Worauf muss man bei Labels aufpassen?
Dass das entsprechende continue statement (continue LABEL_1 f.e.) in dem block vorkommt wo das loop definiert ist sonst error
Welche davon sind valid?
- int[2] array1;
- int i, ia[]
- int[] ia, iaa[];
- int[] ia = new int[];
- int [] ia = new int[]{1,2,3,4,5};
- int[] ia = new int[2]{1,2};
2,3,5
Wie bekomme ich die Größe eines Arrays?
mit array.length; (feld, keine funktion)
Sind Arrays kovariant?
Ja
Ist zeile 2 oder 3 oder beide richtig?
int[] intArray = new int[]{0,1,2};
Object obj = intArray;
Object[] oa = intArray;
Zeile 2, Zeile 3 nicht da die elemente auf die das intarray zeigt keine Objects sind sondern ints
Ist das ok?
Object[][] oaa = new int[2][3];
Nein, Object[] oa = .. wöre es aber..
Kann eine Methode, die angibt Integer zu returnen auch ein int returnen (oder umgekehrt)?
Ja
Aus was besteht die Methodensignatur?
Methodenname, geordnete Liste von parametertypen
Wie ist die reihenfolge bei overloaded methods? (widening, varargs, autoboxing)
widening vor autoboxing vor varargs
Kann ein byte zu einem Integer geautoboxed werden?
Nein, byte nur zu Byte, int nur zu Integer, ...
Wie viele instance-initializer kann man haben?
Beliebig viele, ein Instance-initializer kann auch beliebig lang sein
Können instance-initializer auf this und super zugreifen?
Ja
Was kann man mit einer Instancevariablen in einem instance-initializer machen welche erst nach dem instance-initializer deklariert wird
Werte zuweisen ok, den Wert verwenden aber nicht
Kann man im instance-initalizer Methoden verwenden welche erst später deklariert/definiert werden?
Ja, im gegensatz zu Variablen welche nicht verwendet werden können (nur werte zugewiesen werden können)
Kann ein instance-initializer Exceptions werfen? Was wenn er gar nicht ohne Exception beendet werden kann?
Kann Exceptions werfen, muss aber einen Weg haben ohne Exception beendet zu werden zu können
Wann muss eine statische final Variable initialisiert werden?
Entweder direkt oder im static initializer
Wann muss eine final class-Variable initialisiert werden?
Entweder direkt, in einem instanceinitializer oder in ALLEN Konstruktoren
Was kann nicht als static deklariert werden?
Eine toplevel-class, ein Interface, eine Enum
Kann man aus einer statischen Methode auf instance-Variablen zugreifen (auch ohne this. – syntax)
Nope -> Nicht vergessen darauf zu achten!
Wieviele static-blocks kann eine Klasse haben?
Beliebig viele
Kann ein static-block auf Variablen zugreifen die erst später im Code deklariet werden?
Gleich wie bei instance-initializern, kann sie setzen aber nichtverwenden
Was passiert wenn eine Klasse superklassen hat und diese ebenfalls statische blocks beinhält? (Reihenfolge)
Es werden erst die superklassen initialisiert (insofern diese noch nicht initialisiert wurden – also der static block ausgeführt wurde)
Können private Member vererbt werden?
Nein, default/protected auch nur in ihrem Visibility-bereich
Können static methoden/variablen überschrieben werden?
Nein, nur versteckt
Wie ist die "Order of initialization"?
- Wenn superklasse existiert: static fielst initialisieren, static initializer ausführen
- static fields, static initializer der klasseW
- Wenn superklasse existiert: instance fields intialisieren, instance initializer auführen
- superclass konstruktor ausführen
- instance fields initialisieren, instance initializer ausführen
- klass construktor ausführen
Kann eine statische Methode auch abstrakt sein?
Nein, statisch bedeutet sie gehört zur klasse, abstrakt sagt aber dass sie nicht implementier tist
Was ist wenn eine statische Methode final ist?
sie kann nicht versteckt werden!
Kann eine final class abstrakte Methoden beinhalten?
Nein
Kann eine statische Methode eine instance-methode überschreiben oder vice-versa?
Nein
Kann ein cast auch ausgeführt werden wenn keine is-a - Beziehung existiert?
Nein
kann man immer zu Interfaces casten?
Fast, der compiler weiß ja nicht ob ggfls eine subclasse das Interface implementiert. Ist die Klasse allerdings final weiß er es und checkt ob das Interface acuh implementiert wird
Was ist die Regel wann casten notwending ist?
Wenn man features (instance-variablen/methoden) die in einer subklasse definiert sind nutzen möchte durch eine Referenz die als superklasse definiert ist
((String) obj).length();
Ändert das casten das Objekt?
Nein, nur wie der Compiler das Objekt sieht
Sind aufrufe von non-private und non-final instance-methods dynamisch von der jvm (also virtuell) oder staisch zur compile-zeit gebunden?
Dynamisch von der jvm -> polymorphismus wäre sonst nicht möglich, Elemente zur Laufzeit austauschen
Kann man die equals-methode auch "nur" overloaden statt overriden?
Ja, super gefährlich - Verwendet man die Methode kann es sein, dass die equals-methode der superklasse aufgerufen wird
Was ist alles in einem Interface defaultmäßig?
public außer Methoden di eexplizit private sind
Was ist der Unterschied zwischen statischen Methoden einer Klasse und eines Interfaces hinsichtlich der vererbung?
statische methoden eines interfaces werden nicht vererbt, einer Klasse schon