logo

Crowdly

SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen

Looking for SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen test answers and solutions? Browse our comprehensive collection of verified answers for SEW2b 1xHIT String-Objekte und weitere Kontrollstrukturen at elearning.tgm.ac.at.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Referenzdatentypen vergleichen

Wenn man den Inhalt von Referenzdatentypen vergleichen möchte, stößt man

auf ein Problem. Ein Beispiel dafür ist, wenn man überprüfen möchte, ob

ein eingegebener Text mit einem gespeicherten Text übereinstimmt. Das

folgende Programmbeispiel zeigt dieses Problem:

Was passiert hier in diesem Beispiel? Wenn man sich das Speicherbild

vorstellt, kommt man der Lösung näher:

Beim Vergleich mit == (oder auch !=

) wird der Inhalt der Variablen

verglichen. Der Inhalt einer Referenzvariablen ist aber

die Referenz

auf ihr zugehöriges Objekt, d.h. ein Verweis auf den Ort, wo das Objekt

gespeichert ist (Schnur, Fernsteuerung, ...). Das eine

String

-Objekt

ist aber nicht an genau der gleichen Stelle gespeichert, wie das andere

String

-Objekt (was ja auch nicht sein kann, da zwei unterschiedliche

Objekte nicht an der gleichen Stelle sein können - oder hast du schon

einmal 2 Dinge genau an der gleichen Stelle gesehen?). Deshalb ist auch

ihre Referenz nicht gleich. Und damit liefert der Vergleich der beiden

Referenzen

false.

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • Wenn zwei String-Variablen mit == verglichen werden, kommt zunächst

    Compiler-Fehler.

  • Obwohl beide String-Variablen auf den inhaltlich gleichen Text verweisen, ist das Ergebnis eines String-Vergleiches mit == oft (speziell wenn einer der String-Werte eingelesen wurde).

  • Der Grund dafür ist, dass mit == der Inhalt der Variablen verglichen wird, und dieser ist jeweils eine .

  • Eine Referenz gibt aber

    an. Und dieser kann bei 2 Objekten eben
    gleich sein.

View this question

Referenzdatentypen im Arbeitsspeicher

Mit Referenzvariablen läuft es zunächst ganz ähnlich ab. Wenn sie

deklariert werden, wird zunächst eine leere Variable auf dem Stack

erzeugt.

String text1;

 

Wenn dieser String

-Variablen jedoch ein Text zugewiesen wird, dann kann

dieser Text

nicht innerhalb der String

-Variablen gespeichert werden.

Texte können beliebig groß sein. Daher kann man nicht wie bei einfachen

Datentypen von vornherein eine bestimmte Anzahl an Bytes als Größe

festlegen. Deshalb sind Texte als

Objekte

umgesetzt worden. Objekte

werden auf einem viel größeren Speicherbereich dem

Heap

(engl. für

Haufen) gespeichert. Damit man sie dort findet wird in der Variablen am

Stack eine

Referenz

auf dieses Objekt abgelegt. Diese Referenz (bzw.

Verweis) kann man sich als Adresse vorstellen oder als Schnur zum Objekt

am Heap oder auch als Fernsteuerung, mit der ich das Objekt am Heap

ansprechen kann. In Grafiken stelle ich sie meist als Pfeil dar. Die

folgende Zeile erzeugt ein

String-Objekt mit dem Inhalt Ich mag SEW!

und

speichert die Referenz zu diesem Objekt in der Variablen

text1:

   text1 = "Ich mag SEW!"

;

 

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • Die lokale Variable selbst wird auch bei Referenzdatentypen im -Bereich des Arbeitsspeichers angelegt.

  • Der "Inhalt" einer Referenzvariablen (z.B. der Text) wird in einem Speicherbereich namens gespeichert.

  • Im Heap werden alle

    gespeichert.

  • Der Text, den wir in eine String-Variable speichern wollen (z.B. Ich mag SEW!), ist also auch ein und wird am gespeichert.

  • Damit ein Objekte am Heap gefunden werden kann, wird eine auf dieses Objekt benötigt.

  • Diese Referenz wird dann in die am Stack gespeichert.

  • Welche der folgenden Umschreibungen kann man für den Begriff "Referenz!" verwenden?

  • Das folgende Bild zeigt anschaulich die Organisation eines Stacks und eines Heaps. Dabei ist 0 der und 1 der

(Und auf dem Heap findet man eben ohne Referenzen kaum das gesuchte Kleidungsstück lächelnd )

View this question

Einfache Datentypen im Arbeitsspeicher:

Eine lokale Variable wird im Arbeitsspeicher angelegt (erinnere dich an

das Konservenglas-Bild). Der Bereich des Arbeitsspeichers, in dem lokale

Variablen angelegt werden, wird

Stack

(engl. für Stapel) genannt.

Das folgende Programmstück deklariert zwei Variablen für ganze Zahlen

auf dem Stack.

public class

MeinProgramm {

public static void

main(String[] args) {

int

zahl1;

int

zahl2;

 

Diese zwei Anweisungen erzeugen zwei leere Variablen, die noch keinen

Inhalt haben. Man könnte sich das entsprechende Speicherbild so

vorstellen:

Erst wenn die Variablen mit einem Wert initialisiert werden, haben sie

auch einen Wert in ihrem Speicherbereich im Stack gespeichert.

   zahl1 = 75

;

zahl2 = -

19

;

 

Diese Werte werden bei einfachen Variablen

direkt in den Speicherplatz im Stack gespeichert.

Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • Lokale Variablen werden in einem speziellen Bereich des Arbeitsspeichers angelegt, der genannt wird.

  • Direkt nach der Deklaration (noch vor der Initialisierung) ist der Speicherbereich der Variablen

    .

  • Bei lokalen Variablen von einfachen Datentypen wird der zugewiesene Wert

    im Stack gespeichert.

  • Bei welchen Datentypen werden die Werte der lokalen Variablen direkt im Stack gespeichert?

  • Bei welchen Datentypen werden die Werte der lokalen Variablen NICHT im Stack gespeichert?

View this question

String als Referenzdatentyp

String ist ein Referenzdatentyp bzw. Objektdatentyp

. Dies ist an dem

großen Anfangsbuchstaben

erkennbar. Nachdem laut Java-Regelungen nur

Klassennamen mit einem Großbuchstaben beginnen und dann mit

Kleinbuchstaben fortgesetzt werden, bedeutet der große Anfangsbuchstabe

außerdem, dass

String

auch eine Klasse ist. Damit haben wir

zusammenfassend, folgende Eigenschaften von

String:

  • String ist ein Datentyp

  • String

    ist kein einfacher Datentyp, sondern ein Referenzdatentyp bzw.

    Objektdatentyp

  • String

    ist eine Klasse (alle Referenzdatentypen sind Klassen und

    alle Klassen sind Referenzdatentypen)

Daraus ergeben sich ein paar Besonderheiten bei der Verwendung von

String im Unterschied zu anderen einfachen Datentypen.

*Ergänze folgende Zusammenfassung und beantworte die Fragen:

  • String ist

    einfacher Datentyp.

  • String ist ein

  • Jeder Referenzdatentyp ist auch eine

  • Klassen beginnen in Java immer mit einem Anfangsbuchstaben.

  • Am großen Anfangsbuchstaben ist erkennbar, dass String auch

    ist.

View this question

Zu welcher von 2 grundsätzlichen Kategorien von Datentypen gehört String.

View this question

Es soll eine Zufallszahl zwischen -4 und +3 erzeugt werden. Welcher Wert muss zu der von Math.random() gelieferten Zufallszahl ganz am Schluss addiert werden (nach der Multiplikation), damit der gewünschte Zahlenbereich erreicht wird?

View this question

Mit welcher Zahl muss die von Math.random() gelieferte Zufallszahl multipliziert werden, um einen Zahlenbereich von -5 bis +3 zu erhalten?

View this question

Es soll eine Zufallszahl zwischen -3 und +3 erzeugt werden. Welcher Wert muss zu der von Math.random() gelieferten Zufallszahl ganz am Schluss addiert werden (nach der Multiplikation), damit der gewünschte Zahlenbereich erreicht wird?

View this question

Mit welcher Zahl muss die von Math.random() gelieferte Zufallszahl Multipliziert werden, um einen Zahlenbereich von -5 bis +1 zu erhalten?

View this question

Fußgesteuerte Schleife

Im Gegensatz zu den bisherigen Schleifen (while und for

) steht bei

fußgesteuerten Schleifen die Bedingung erst

am Ende der Schleife

in der

Fußzeile. In Java gibt es dazu die do-while

-Schleife (manchmal auch

einfach nur

do-Schleife genannt). Sie ist folgendermaßen aufgebaut:

In der Kopfzeile befindet sich lediglich das Schlüsselwort do

.

Anschließend beginnt der Schleifenblock mit einer geschwungenen Klammer.

Erst in der Fußzeile findet man neben dem Schlüsselwort

while

auch die

Laufbedingung. Wichtig ist hier auch noch, dass die fußgesteuerte

Schleife

mit einem Strichpunkt endet.

Ergänze folgende Zusammenfassung:

  • Bei der fußgesteuerten Schleife steht die Bedingung

    der Schleife.

  • Die Kopfzeile der fußgesteuerten Schleife in Java besteht nur aus dem Schlüsselwort .

  • Wie bei den anderen Kontrollstrukturen wird der Block der Schleife durch begonnen und durch beendet.

  • Das Schlüsselwort steht am Ende der Schleife nach dem Schleifenblock und gibt an, dass jetzt die Bedingung folgt.

  • Wie bei den kopfgesteuerten Schleifen handelt es sich bei der Bedingung um eine . Sie besagt, dass die Schleife weiter läuft, solange die Bedingung

    ist.

  • Gerne vergessen wird der Abschluss der Schleifenanweisung mittels .

  • Im Gegensatz zur kopfgesteuerten Schleife,

    ausgeführt werden.

View this question

Want instant access to all verified answers on elearning.tgm.ac.at?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!