Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Datenübertragung in Java | Tiefe Java-Struktur
Java Erweitert
course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Datenübertragung in Java

Wie werden Informationen in Java übertragen?

Aus dem vorherigen Kurs wissen Sie, dass es zwei Arten von Speicher gibt – Stack und Heap. Werfen wir einen Blick darauf, wie Daten in diesen beiden Speicherbereichen abgelegt werden:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Wir haben 3 verschiedene Variablen erstellt. Nachfolgend sehen Sie ein Diagramm, das veranschaulicht, wie und wo sie im Speicher abgelegt werden:

Schauen wir uns an, was im Diagramm dargestellt ist:

  • Wir sehen String-Felder im Stack-Speicher, die Verweise auf Werte im Heap-Speicher sind. Dadurch greifen wir nicht jedes Mal direkt auf den Heap-Speicher zu. Stattdessen greifen wir zunächst auf den Verweis im Stack-Speicher zu, was schneller ist als der Zugriff auf den Heap-Speicher. Mit Verweisen auf Werte sind Sie bereits beim Thema String Pool in Berührung gekommen;
  • Sie sehen, dass int nicht im Heap-Speicher gespeichert wird; sein Wert wird direkt im Stack-Speicher abgelegt. Dies gilt für alle primitiven Datentypen (byte, short, int, long, float, double und boolean). Daher werden primitive Datentypen in Java als Wert übergeben. String ist jedoch kein primitiver Datentyp, daher wird sein Wert im Heap-Speicher gespeichert;
  • Für jeden neuen Verweis wird im Heap-Speicher ein neues Objekt erstellt. Haben jedoch zwei Variablen desselben Typs denselben Wert, verweisen sie auf dasselbe Objekt im Heap-Speicher;
  • Der Integer Pool ist ein Bereich im Stack-Speicher, in dem alle Integer-Werte im Bereich von -128 bis 127 verlinkt sind. Diese Optimierung dient der Leistungssteigerung bei der Zahlenverarbeitung in Java, da Zahlen in diesem Bereich häufig verwendet werden. Beachten Sie, dass der Stack-Speicher schneller arbeitet als der Heap-Speicher, sodass wir dank des Integer Pools schnellere Antworten erhalten;
  • Der String Pool ist ein Bereich im Heap-Speicher, in dem identische String-Werte gespeichert werden.

Fazit

In Java wird alles per Wert übergeben. Bei Objekten wird eine Kopie der Referenz übergeben, aber das eigentliche Objekt im Heap bleibt unverändert (sofern es unveränderlich ist, wie String).

Variablen im Stack speichern Referenzen auf Objekte, die sich im Heap befinden. Dies gilt für alle Referenztypen, einschließlich String.

1. Was ist ein Integer Pool in Java?

2. Wie werden Daten in Java übergeben, per Referenz oder per Wert?

question mark

Was ist ein Integer Pool in Java?

Select the correct answer

question mark

Wie werden Daten in Java übergeben, per Referenz oder per Wert?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Datenübertragung in Java

Wie werden Informationen in Java übertragen?

Aus dem vorherigen Kurs wissen Sie, dass es zwei Arten von Speicher gibt – Stack und Heap. Werfen wir einen Blick darauf, wie Daten in diesen beiden Speicherbereichen abgelegt werden:

Main.java

Main.java

copy
123456789
package com.example; public class Main { public static void main(String[] args) { String number = new String("170"); String word = new String("word"); int poolNumber = -4; } }

Wir haben 3 verschiedene Variablen erstellt. Nachfolgend sehen Sie ein Diagramm, das veranschaulicht, wie und wo sie im Speicher abgelegt werden:

Schauen wir uns an, was im Diagramm dargestellt ist:

  • Wir sehen String-Felder im Stack-Speicher, die Verweise auf Werte im Heap-Speicher sind. Dadurch greifen wir nicht jedes Mal direkt auf den Heap-Speicher zu. Stattdessen greifen wir zunächst auf den Verweis im Stack-Speicher zu, was schneller ist als der Zugriff auf den Heap-Speicher. Mit Verweisen auf Werte sind Sie bereits beim Thema String Pool in Berührung gekommen;
  • Sie sehen, dass int nicht im Heap-Speicher gespeichert wird; sein Wert wird direkt im Stack-Speicher abgelegt. Dies gilt für alle primitiven Datentypen (byte, short, int, long, float, double und boolean). Daher werden primitive Datentypen in Java als Wert übergeben. String ist jedoch kein primitiver Datentyp, daher wird sein Wert im Heap-Speicher gespeichert;
  • Für jeden neuen Verweis wird im Heap-Speicher ein neues Objekt erstellt. Haben jedoch zwei Variablen desselben Typs denselben Wert, verweisen sie auf dasselbe Objekt im Heap-Speicher;
  • Der Integer Pool ist ein Bereich im Stack-Speicher, in dem alle Integer-Werte im Bereich von -128 bis 127 verlinkt sind. Diese Optimierung dient der Leistungssteigerung bei der Zahlenverarbeitung in Java, da Zahlen in diesem Bereich häufig verwendet werden. Beachten Sie, dass der Stack-Speicher schneller arbeitet als der Heap-Speicher, sodass wir dank des Integer Pools schnellere Antworten erhalten;
  • Der String Pool ist ein Bereich im Heap-Speicher, in dem identische String-Werte gespeichert werden.

Fazit

In Java wird alles per Wert übergeben. Bei Objekten wird eine Kopie der Referenz übergeben, aber das eigentliche Objekt im Heap bleibt unverändert (sofern es unveränderlich ist, wie String).

Variablen im Stack speichern Referenzen auf Objekte, die sich im Heap befinden. Dies gilt für alle Referenztypen, einschließlich String.

1. Was ist ein Integer Pool in Java?

2. Wie werden Daten in Java übergeben, per Referenz oder per Wert?

question mark

Was ist ein Integer Pool in Java?

Select the correct answer

question mark

Wie werden Daten in Java übergeben, per Referenz oder per Wert?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 2
some-alt