javazert
javazert
javazert
Kartei Details
Karten | 300 |
---|---|
Sprache | Deutsch |
Kategorie | Informatik |
Stufe | Andere |
Erstellt / Aktualisiert | 08.01.2020 / 08.01.2020 |
Weblink |
https://card2brain.ch/box/20200108_javazert
|
Einbinden |
<iframe src="https://card2brain.ch/box/20200108_javazert/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was gibt es für Konstruktoren für StringBuilder() ?
- StringBuilder() : initial capacity: 16 characters
- StringBuilder(CharSequence seq) (Hier kann man Strings reinwerfen da diese auch eine CharSequence sind)
- StringBuilder(int capacity)
- StringBuilder(String str): same wie CharSequence
Was gibt append / insert bei StringBuilder-Objekten zurück?
Referenz auf den gleichen StringBuilder (method-chaning möglich)
Was ist der Unterschied zwischen delete und substring bei StringBuilder objekten?
delete ändert die Inhalte des StringBuilders, substring nicht (substring returns string, delete returns StringBuilder)
Was macht StringBuilder.append(boolean/char/double/..)?
Fügt den parameter der sequence hinzu
Was macht StringBuilder.charAt(int index) ?
Gibt char am index zurück oder wirft IndexOutOfBoundsException
Was macht StringBuilder.compareTo(StringBuilder another)?
Vergleicht zwei StringBuilder-Objekte lexicographisch
Was macht StringBuilder.delete(int start, int end)?
Löscht start-end aus der Sequence
Was macht StringBuilder.deleteCharAt(int index)?
Löscht den char aus der Sequence
Was macht StringBuilder.indexOf(String str) ?
Gibt index des Substrings zurück (first occurence) oder -1
Was macht StringBuilder.indexOf(String str, ind fromIndex)
Gibt index (first occurence) des substrings zurück, beginnend am fromIndex oder -1
Was macht StringBuilder.insert(int offset, boolean/char/.. val)?
Fügt val der sequence an der position hinzu oder wirft StringIndexOutOfBoundsException wenn offset < 0 bzw > length
Was macht StringBuilder.replace(int start, int end, String str) ?
Ersetzt die chars im substring der sequence mit dem übergebenen string oder schmeißt StringIndexOutOfBoundsException wenn die indexe nicht passen
Was macht StringBuilder.subString(int start)?
Gibt eine neue subsequence des strings zurück ab dem index oder StringIndexOutOfBoundsException wenn start <-1 oder > length
Was macht StringBuilder.setLength(int newLength)?
Setzt die länge des Strings und schneidet ihn ab oder wirft IndexOutOfBoundsException wenn die Länge < 0
Warum können arithmetische Operatoren auch auf wrapper objekte für numerische Typen angewandt werden?
Wegen auto-unboxing
Was sind short circuiting operators und was bedeutet das?
&& , || -> Sie vermeiden es teile einer Expression auszuführen wenn das Ergebnis sich dadurch nicht ändern würde
Was ist das besondere an &, | ?
Sie sind non-short-circuiting (im vergleich zu && und ||). D.h. sie führen die ganze Expression aus und nicht nur einen Teil
Wie kann man überprüfen ob exakt einer der Operanden true ist?
Mit Xor, also "^"
Sind assignment-operators links oder rechts assoziativ?
Rechts-assoziativ
Integer i = 1;
Integer j = i;
i++;
// Was ist i und j jetzt?
i = 2, j = 1
--> i++ weißt i ein neues Integer zu (Wrapper!)
Was bedeuted "unary numeric promotion"?
Wenn der operant eines unären Operators ( i++ z.B.) kleiner als int ist wird der operant automatisch zu int gecasted bevor der Operator verwendet wird.
--> byte b = 2;
short s= -b; wirft deshalb einen fehler, weil b ein int wird, nicht final ist und ein größerer datentyp ist als short
Was bedeutet "Binary numeric promotion"?
Beide Operanten eines binary operators (&&, ..) werden zu einem int gecasted oder, wenn einer der beiden größer als int ist zu dem typ des größten Operanten
Wie gibt man ein float-literal an?
1.0f z.b.
Funktioniert:
float f = 1.0f; double d = 1.0;
int x = f-1;
Nein, binary numeric promotion castet f und -1 zu float, passt nicht ohne cast in int
Was passiert mit der binary/unary numeric promotion in Verbindung zu Konstanten (nur konstanten!)?
Compiled alles, kein Cast notwendig, Compiler sieht ob die Werte der Konstanten passen oder nicht (fehler wenn sie nicht passen)
Wie könnte man das ausschreiben? :
byte b = 1;
b++;
byte b = 1;
b = (byte) (b1*b2);
unary numeric promotion hätte es zu int gecasted und fehler geworfen
Compilieren folgende Statements?
Byte bW = 1;
bw = -bw;
Nein, bw wird zu int gecasted (numeric promotion)
--bw würde funktionieren da impliziter cast hier vom compiler ausgeführt wird
Sind die meisten Operatoren in java links oder rechts assoziativ?
Links-assoziativ
Welche Operatoren sind rechts-assoziativ?
assignment operator und ternary operator
Compiliert das?:
boolean flag true;
if(flag)
else System.out.println("false");
Nein, ein if block braucht min. {} oder ein ;
Gibt es einen unterschied zwischen den folgenden beiden?:
int x = 0;
- if(x++ == 0)
- if(++x == 0)
- hier wird x mit 0 verglichen
- hier wird (x+1) mit 0 vergleichen
also Ja
Warum würde das nicht funktionieren:
flag ? System.out.println("true") : System.out.println("false");
ternäre Operatoren sind Expressions, brauchen also eine Rückgabe!
etwas wie:
double d = a == b ? 5:10.0;
würde aber gehen! (hier wir sogar gecasted..)
Würde der code compilieren? :
byte b = 10;
switch(b) {
case 1000:
....
Nein, 1000 passt nicht in byte!
Was gehen würde, wäre: switch(b+1) --> numeric promotion zu int
Was kann in einer while-loop nicht als expression verwendet werden?
integer-werte, z.B. while(1)
while(true) usw. gehen aber
Was muss im statement einer for-schleife mindestens auftauchen?
for( ; ;) , also zwei semicolons
Wird das compiled?:
int k = 0;
for (i = 0, k=7, obj = "hello"; i<10; i++);
Ja, multiple assignments sind ok
Wird das compiled?
for(int i = 5, String str = "";i<10; i++);
Nein, man kann nur variablen von einem Typ deklarieren
Wie kann man aus einer inneren Schleife eine äußere beenden?
Mit Labels:
MY_LABEL: for...
break MY_LABEL;
Wo kann ein Label nicht hinzugefügt werden?
Zu expressions oder Methoden:
BAD1: int x = 0;
BAD2: public void m1() {}
Können Array-deklarationen größenangaben beinhalten?
(int[2] myArray;)
Nein