javazert

javazert

javazert


Set of flashcards Details

Flashcards 300
Language Deutsch
Category Computer Science
Level Other
Created / Updated 08.01.2020 / 08.01.2020
Weblink
https://card2brain.ch/box/20200108_javazert
Embed
<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