Fragen zu Typen, Operationen und Zuweisungen

Fragen zu Typen, Operationen und Zuweisungen javafrage Thu, 09/06/2018 - 18:09

1. Zuweisungen mit dem Datentyp char

1. Zuweisungen mit dem Datentyp char

Welche der Zuweisungen der Typen short und char werden nicht vom Übersetzer akzeptiert?

public class CharTest {
public static void main(String[] args) {
short s1 = 70;
short s2 = 0;;
char c = 'a';
System.out.println(c);
c++;
System.out.println(c);
c = s1;
System.out.println(c);
c = (char)s1;
System.out.println(c);
c = (char)(c + s1);
System.out.println(c);
s2= c;
System.out.println(s2);
s2= (short)c;
System.out.println(s2);
}
}
Niveau 1
Schwierigkeitsgrad mittel
Zeit

4 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

javafrage Thu, 12/29/2011 - 12:04

2. Syntax von Zuweisungen

2. Syntax von Zuweisungen

Welche der folgenden 10 Zuweisungen haben eine korrekte (richtige) bzw. inkorrekte (falsche) Syntax?
Was stimmt an den inkorrekten Zuweisungen nicht?

Nr. Zuweisung Bewertung (richtig, falsch) Erklärung (nur bei falscher Zuweisung)
 
int a;
int b;
int c;
richtig Die Variablen sind alle im gleichen Block deklariert und mit dem Wert 0 initialisiert.
1
a = 4;
   
2
a = b;
   
3
b := a;
   
4
19 = b;
   
5
a = a+c;
   
6
a = 2*c
   
7
a = a*a;
   
8
a = 4;
   
9
a,c = b;
   
10
c = c;
   
Niveau 1
Schwierigkeitsgrad mittel
Zeit

4 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu 1.: Zuweisungen mit dem Datentyp char

char und short sind Datenbehälter der gleichen Größe (16 Bit). Auf beiden sind die arithmetischen Operationen definiert. Man darf sie aber aus Sicherheitsgründen nicht ohne Cast (Typkonversion) aufeinander zuweisen.

public class CharTest {
public static void main(String[] args) {
short s1 = 70;
short s2 = 0;
char c = 'a';
System.out.println(c);
c++;
System.out.println(c);
//c = s1;
System.out.println(c);
c = (char)s1;
System.out.println(c);
c = (char)(c + s1);
System.out.println(c);
//s2= c;
System.out.println(s2);
s2= (short)c;
System.out.println(s2);
}
}

 

javafrage Fri, 09/28/2012 - 15:57

3. Syntax von Bezeichnern

3. Syntax von Bezeichnern

Mit welchen Zeichen dürfen in Java Namen (Identifier) von Variablen beginnen?

Achten Sie auf Groß- und Kleinschreibung!

Niveau 1
Schwierigkeitsgrad mittel
Zeit

2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 2.: Syntax von Zuweisungen

Nr. Zuweisung Bewertung (richtig, falsch) Erklärung (nur bei falscher Zuweisung)
 
int a;
int b;
int c;
richtig Die Variablen sind alle im gleichen Block deklariert und mit dem Wert 0 initialisiert.
1
a = 4;
richtig  
2
a = b;
richtig   
3
b := a;
falsch  Der Zuweisungsoperator in Java ist „=“ 
4
19 = b;
 falsch   Man kann einem konstanten Literal keinen Wert zuweisen. 
5
a = a+c;
richtig   
6
a = 2*c
falsch   Semikolon fehlt 
7
a = a*a;
richtig   
8
a = 4;
richtig   
9
a,c = b;
falsch  Man kann nur einer Variablen einen Wert zuweisen 
10
c = c;
richtig   
javafrage Thu, 10/04/2012 - 22:58

4. Nicht erlaubte Namen von Bezeichnern

4. Nicht erlaubte Namen von Bezeichnern

Nennen Sie 10 Namen (Identifier) die Sie nicht in Java verwenden dürfen, obwohl Sie von der Zeichenfolge her, gültig aufgebaute Namen sind.

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 3.: Syntax von Bezeichnern

„_“, „$“ oder Buchstaben

javafrage Sun, 10/07/2012 - 19:00

5 Vererbung, Konstruktoren, Schlüsselworte

5 Vererbung, Konstruktoren, Schlüsselworte

Gegeben seien die beiden Klassen Unterklasse und Oberklasse:

public class Oberklasse {
   public int wert;
   public Oberklasse(int a) {
      wert=a;
      System.out.println("K-Oberklasse: "+ wert);
      a++;
   } // Ende Konstruktor Oberklasse ** Hier fehlte ein CR
   
   public static void main(String[] args) {
      Oberklasse ok = new Oberklasse(10);
      ok.wert++;
      System.out.println(ok.wert);
   } // Ende main
} // Ende Klasse Oberklasse

public class Unterklasse extends Oberklasse {
   public Unterklasse (int e, int f) {
      super(e+f);
      System.out.println("K-Unterklasse: "+ wert);
      wert = wert + e +f;
      System.out.println("K-Unterklasse: "+ wert);
   } // Ende Konstruktor Unterklasse

   public static void main(String[] args) {
      System.out.println("ok");
      Oberklasse ok = new Oberklasse(10);
      ok.wert++;
      System.out.println(ok.wert);
      System.out.println("uk");
      Unterklasse uk = new Unterklasse(2,3);
      ok.wert--;
      System.out.println(ok.wert);
   } // Ende main
} // Ende Klasse Unterklasse

a.) Schreiben Sie die Konsolenausgaben auf, die das Programm schreibt wenn es mit dem Befehl java Unterklasse gestartet wird.

b.) Unterlinieren Sie alle Schlüsselworte der Sprache Java

Niveau 1
Schwierigkeitsgrad mittel
Zeit 8+3 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 4.: Nicht erlaubte Namen von Bezeichnern

Schlüsselwörter und die Literale true, false, null können nicht für Bezeichnernamen verwendet werden. Alle Antworten mit 10 Beispielen von Schlüsselwörtern sind korrekt.

Diagramm mit Schlüsselwörtern der Sprache Java

javafrage Thu, 10/25/2012 - 17:38

Anonymous (not verified)

Tue, 11/09/2021 - 18:28

Macht es Sinn, diese Frage in Kapitel 2 zu packen, wenn hier noch nicht klar ist, was Vererbung überhaupt ist?

6. Deklaration und Zuweisung von Variablen

6. Deklaration und Zuweisung von Variablen

Deklarieren Sie eine Variable mit dem Namen x mit einem Typ der die Verwaltung von ganzen Zahlen mit 32 Bit erlaubt. Achten Sie auf die korrekte Syntax.

  1. Deklarieren Sie die Variable in einem Befehl und weisen Sie der Variablen den Wert 17 in einem zweiten Befehl zu.
  2. Deklarieren Sie die Variable und weisen Ihr den Wert 17 in einem integrierten Befehl zu.
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 5.: Vererbung, Konstruktoren, Schlüsselwörter

public class Oberklasse {
   public int wert;
   public Oberklasse(int a) {
      wert=a;
      System.out.println("K-Oberklasse: "+ wert);
      a++;
   } // Ende Konstruktor Oberklasse ** Hier fehlte ein CR
   
   public static void main(String[] args) {
      Oberklasse ok = new Oberklasse(10);
      ok.wert++;
      System.out.println(ok.wert);
   } // Ende main
} // Ende Klasse Oberklasse

public class Unterklasse extends Oberklasse {
   public Unterklasse (int e, int f) {
      super(e+f);
      System.out.println("K-Unterklasse: "+ wert);
      wert = wert + e +f;
      System.out.println("K-Unterklasse: "+ wert);
   } // Ende Konstruktor Unterklasse

   public static void main(String[] args) {
      System.out.println("ok");
      Oberklasse ok = new Oberklasse(10);
      ok.wert++;
      System.out.println(ok.wert);
      System.out.println("uk");
      Unterklasse uk = new Unterklasse(2,3);
      ok.wert--;
      System.out.println(ok.wert);
   } // Ende main
} // Ende Klasse Unterklasse

a.) Die Konsolenausgaben

ok
K-Oberklasse: 10
11
uk
K-Oberklasse: 5
K-Unterklasse: 5
K-Unterklasse: 10
10

b.) Unterlinieren Sie alle Schlüsselworte der Sprache Java: siehe oben

 

javafrage Fri, 07/05/2013 - 09:01

7. Beispiele impliziter und expliziter Typkonvertierungen

7. Beispiele impliziter und expliziter Typkonvertierungen

Geben Sie jeweils ein Beispiel für implizite und notwendige explizite Typkonvertierungen (Casts) bei einer Zuweisung. Nutzen Sie die vorgegebenen Variablen, weisen Sie sie aufeinander zu:

int ii = -1000000;
long ll = -100L;
double db = 3.13;
  1. Beispiel einer Zuweisung mit einer impliziten Typkonvertierung
  2. Beispiel einer Zuweisung mit einer notwendigen, expliziten Typkonvertierung
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 6.: Deklaration und Zuweisung von Variablen

  1. int x; x = 17;
  2. int x = 17;

 

javafrage Fri, 07/05/2013 - 09:17

8. Unterschiede zwischen char und short Typen

8. Unterschiede zwischen char und short Typen

 

char und short sind Datenbehälter die 16 Bit große Zahlen verwalten.
Warum ist eine explizite Typkonversion (Cast) bei Zuweisungen von Variablen dieser beiden Typen notwendig?
Beispiel:

short sh = 1;;
char ch = 1;
ch = (char)sh;
sh = (short)ch;

Geben Sie ein kurze Erklärung.

 

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 7.: Beispiele impliziter und expliziter Typkonvertierungen

Beispiel einer Zuweisung mit einer impliziten Typkonvertierung:

ll = ii;

Beispiel einer Zuweisung mit einer notwendigen, expliziten Typkonvertierung:

ii = (int) ll;
javafrage Fri, 07/12/2013 - 08:12

9. Bedingt auswertende Operatoren

9. Bedingt auswertende Operatoren

Nennen Sie zwei bedingt auswertende Operatoren und nennen Sie einen Verwendungszweck.

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 8.: Unterschiede zwischen char und short Typen

char repräsentiert Zeichen und hat einen Wertebereich von 0 bis 216-1. short hat einen Wertebereich von -215 bis 215-1. Beide Wertebereiche überlappen sich nur zur Hälfte. Bei Zuweisungen im nicht überlappenden Bereich kommt es zu Werten die im Zieltyp eine andere Bedeutung haben. Hierdurch können unbemerkt Rechenfehler entstehen.

 

javafrage Wed, 08/21/2013 - 09:59

10. long versus double

10. long versus double

Die Javatypen double und long belegen jeweils 64 Bit Speicherplatz. Nennen Sie zwei Anwendungsfälle in den man den Typ double anstatt long verwenden sollte.

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 9.: Bedingt auswertende Operatoren

|| und &&. Sie erlauben den Abbruch eines boolschen Ausdrucks wenn das Ergebnis schon feststeht. Die hinteren Teile des Ausdrucks werden dann nicht mehr ausgewertet. Man kann hierdurch unsichere Operationen, wie die Benutzung eines Zeigers, vor dem auslösen einer Ausnahme schützen. Man wertet im ersten Teil des Terms den potentiellen Fehlerfall, hier ein Nullzeiger, aus und fährt nur fort wenn der zweite Teil des Terms sicher ausgewertet werden kann.

 

javafrage Mon, 11/17/2014 - 17:38

11. Automatische Typkonversionen bei Termen (double, long)

11. Automatische Typkonversionen bei Termen (double, long)

Sie addieren eine Variable a von Type double zu einer Variablen b vom Typ long. Was ist der Typ des Ergebnis dieser Addition?
Tragen Sie den Typ den Java, ohne Casting, nach der Addition für die Variable c erwartet ein.
Geben Sie eine kurze Erklärung für Ihre Wahl:

double a = 24.3D;
long   b = 17L;
?      c = a + b;
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 10.: long versus double

  1. Man sollte den Typ double benutzen wenn man erwartet, dass der Wertebereich den eines long Typen überschritten wird.
  2. Man sollte den Typ double benutzen wenn man Werte mit Nachkommastellen verwalten muss

 

javafrage Sat, 08/15/2015 - 13:12

12. Typkonversionen bei Termen (int, long)

12. Typkonversionen bei Termen (int, long)

Addieren Sie zwei sehr große Variablen d und e vom Typ int.
Das Ergebnis wird in der Variable f vom Type long gespeichert. f hat einen größeren Wertbereich damit das Ergebnis korrekt verwaltet werden kann.

Implementieren Sie die Addition im Code unten so, dass in f ein korrektes Ergebnis abgelegt wird.

int d= Integer.MAX_VALUE-2;
int e= Integer.MAX_VALUE-3;
long f =                                     ; // hier implementieren
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 11.: Automatische Typkonversionen bei Termen (double, long)

double a = 24.3D;
long b = 17L;

double c = a +b;

Bei arithmetischen Termen wird die Operation immer im Wertebereich des größten Operanden durchgeführt. Diese ist double.

 

javafrage Sat, 08/15/2015 - 13:25

13. Typen, Arithmetik und Wertebereiche

13. Typen, Arithmetik und Wertebereiche

Was würde geschehen wenn Sie die Summe der beiden Variablen d und e, wie folgt berechnen und in in der Variable g speichern würden?

int d= Integer.MAX_VALUE-2;
int e= Integer.MAX_VALUE-3;
int g = d + e;
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 1.78: Typkonversionen bei Termen (int, long)

int d= Integer.MAX_VALUE-2;
int e= Integer.MAX_VALUE-3;

long f = (long)d + (long)e;

 

javafrage Sat, 08/15/2015 - 14:55

Anonymous (not verified)

Wed, 12/16/2020 - 15:45

Hallo,
fehlt bei der Antwort zu Frage 1.78: Typkonversionen bei Termen (int,long) nicht ein Semikolon hinter der zweiten Zeile?

14. int versus float

14. int versus float

Die Javatypen float und int belegen jeweils 32 Bit Speicherplatz.

Nennen Sie zwei Anwendungsfälle in den man den Typ float anstatt int verwenden sollte.

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

 

Antwort zu Frage 13: Typen, Arithmetik und Wertebereiche

Bei der Addition dieser beiden großen Zahlen kommt es jenseits des positiven Wertebereichs zu einem Überlauf. Das Ergebnis ist negativ (-7 umgenau zu sein). Für Java ist das eine reguläre Operation es wird kein Fehler berichtet obwohl das Ergebnis nicht korrekt ist. Die ist ein Kompromis in der Java Spezifikation um eine extrem effiziente Arithmetik implementieren zu können.

javafrage Sun, 06/19/2016 - 11:24

15. char versus short, Beispiele

15. char versus short, Beispiele

char und short sind, obwohl sind unterschiedlich eingesetzt werden, 16 Bit Zahlentypen in Java.

Hilfe: 215=32768

  1. Nennen sie eine Zahl die man mit short Typen darstellen kann und nicht dem char Typ.
  2. Nennen Sie eine Zahl die man dem char Typ darstellen kann und nicht mit dem short Typ.
Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 14. : int versus float

  1. Man sollte float benutzen wenn man erwartet, dass der Wertebereich den eines int Typen übertrifft.
  2. Man sollte float benutzen wenn man Werte mit Nachkommastellen verwalten muss

 

javafrage Sun, 06/19/2016 - 11:38

16. Erste ganze Zahl größer Null die man noch mit int darstellen kann aber nicht mit float Typen

16. Erste ganze Zahl größer Null die man noch mit int darstellen kann aber nicht mit float Typen

Was ist die erste ganze Zahl größer Null, die man noch mit dem Typ int darstellen kann aber nicht mit dem Typ float?

Geben Sie eine Erklärung die auf dem Zahlenformat der beiden Typen basiert.

Schreiben Sie ein Programm welches diesen Wert berechnet.

Diese Frage ist für Klausuren etwas zu schwer...

Niveau 1
Schwierigkeitsgrad schwer
Zeit

10 Minuten (Herleitung)
15 Minuten (Programmentwicklung)

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 15. char versus short

  1. Im Wertebereich vom short aber nicht im Wertebereich von char : -1
  2. Im Wertebereich von char aber nicht im Wertebereich short: (215 -1) + 1 = 215 = 32768
    1. Herleitung: Größte Wert von short: 215-1. Dann noch mindestens 1 addieren.
javafrage Tue, 01/03/2012 - 12:53

17. Schlüsselwörter

17. Schlüsselwörter

Nennen Sie soviele Java Schlüsselworte wie möglich!

Niveau 1
Schwierigkeitsgrad mittel
Zeit

3 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 16.: Erste ganze Zahl größer Null die man noch mit int darstellen kann aber nicht mit float Typen

16777217

Erklärung

Der Typ int kann alle ganzen Zahlen bis 231-1 darstellen (Siehe)

Der Typ float kann alle ganzen Zahlen darstellen solange der Exponent 20 ist. Wird der Exponent zu 21,  kann der Typ float nur noch jede zweite Zahl genau darstellen.

Der größte Wert den man im Typ float in der Mantisse beschreiben kann ist hat alle 23 Bits gesetzt. Der Wert is also 224-1=16777215.

float kann also noch (224-1)*20 = 16777215 darstellen.

Der nächste Wert kann float auch noch darstellen: 224=16777216. Hier wird ein größerer Exponent verwendet und eine 1 steht in der Mantisse.

Die nächste Zahl 16777217 kann aber von float nicht mehr dargestellt werden. Der Exponent muss größer als 20 sein, da die Mantisse nicht mehr ausreicht. Ist der Exponent aber 21 kann man nur noch jede zweite Zahl genau repräsentieren. Ist der Exponent 22, kann man nur noch jede vierte Zahl genau repräsentieren.

Eine mögliche Implementierung

package javafrage;

public class IntVersusFloat {

public static void main(String[] args) {
int i=0;
float j=0.0f;
while (i==(int)j) {
j++;
i++;
}
System.out.println("i: "+i+", j: "+j);
double k = (int)Math.pow(2, 24);
System.out.println(k);
}
}

javafrage Fri, 12/30/2011 - 15:34

18. Typkonversion: Casten

18. Typkonversion: Casten

Was geschieht mit dem Ergebnis einer Zuweisung die von den Basistypen her unsicher ist und mit einem „Cast“ erzwungen wird...

  1. … im günstigsten Fall?
  2. … im ungünstigen Fall?
Niveau 1
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 17 : Schlüsselwörter

Java hat 50 Schlüsselwörter (Siehe)

Wertung

  • 20 und mehr: Ausreichend für den Kurs
  • 40 und mehr: Gurulevel
  • 50: Sie sind wohl James Gosling?
javafrage Tue, 12/27/2011 - 14:26

19. Sichere Zuweisungen

19. Sichere Zuweisungen

Nicht alle Basistypen können wegen ihrer unteschiedlichen Wertebereiche sicher aufeinander zugewiesen werden. Markieren alle sicheren Zuweisungen mit einem Kreuz in der dritten Spalte. Tragen Sie für die unsicheren Zuweisungen eine Zuweisung mit einer Typkonversion(Cast) so ein, so das der Übersetzer die unsichere Zeile ohne Fehler übersetzt.

  Zuweisung Erlaubt und sicher Nicht erlaubt und unsicher
(Zuweisung mit Typkonversion)
Deklaration der Variablen. Belegung sei unbekannt und nicht die Standardinitialisierung
byte by;
short sh;
char ch;
int in;
long lo;
...
Nichts in diese Zelle eintragen Nichts in diese Zelle eintragen
Beispiel a.)
by = lo;
  by = (byte) lo;
Beispiel b.)
by = by;
 X  
1.
lo = lo;
   
2.
lo = in;
   
3.
lo = sh;
   
4.
lo = by;
   
5.
sh = lo;
   
6.
sh = in;
   
7.
sh = ch;
   
8.
sh = by;
   
9.
in = lo;
   
10.
in = in;
   
11.
in = sh;
   
12.
in = by;
   

 

Niveau 1
Schwierigkeitsgrad mittel
Zeit

6 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 18: Typkonversion, Casten

  •  … im günstigsten Fall?
    • Nichts. Der zugewiesene Wert ist der korrekte Wert
  •  … im ungünstigen Fall?
    • Der zugewiesene Wert ist kleiner, da Bits die ausserhalb des Wertebereichs des kleineren Typs liegen ohne Fehlermeldung abgeschnitten werden.

 

Antwort zu Frage 19: Sichere Zuweisungen

  Zuweisung Erlaubt und sicher Nicht erlaubt und unsicher
(Zuweisung mit Typkonversion)

Deklaration der Variablen.

Belegung sei unbekannt und nicht die Standardinitialisierung

byte by;
short sh;
char ch;
int in;
long lo;
...
Nichts in diese Zelle eintragen Nichts in diese Zelle eintragen
Beispiel a.)
by = lo;
 
by = (byte) lo;
Beispiel b.)
by = by;
X  
1.
lo = lo;
X  
2.
lo = in;
X  
3.
lo = sh;
X  
4.
lo = by;
X  
5.
sh = lo;
 
sh=(short)lo;
6.
sh = in;
 
sh=(short)in;
7.
sh = ch;
 
sh=(short)ch;
8.
sh = by;
 
9.
in = lo;
 
in=(int)lo;
10.
in = in;
 
11.
in = sh;
 
12.
in = by;
X  
javafrage Tue, 10/02/2012 - 21:40