1. Wie das Gedächtnis organisiert ist
Jeder Computer verfügt über einen internen Speicher . Was ist es? Welche Eigenschaften hat es? Und vor allem: Welchen Nutzen hat es für uns?
Jedes Programm (auch in Java geschriebene Programme ) wird vor der Ausführung in den Hauptspeicher geladen . Der Hauptspeicher enthält den Programmcode (der vom Prozessor ausgeführt wird) sowie die Programmdaten (also Daten, die das Programm selbst in den Speicher legt).
Was ist Erinnerung und wie ist sie?
Eine Excel-Tabelle besteht aus Zellen . Jede Zelle hat ihre eigene eindeutige Kennung ( A1
, A2
, ... B1
, B2
). Wenn Sie den Bezeichner einer Zelle kennen , können Sie jederzeit einen Wert hineinschreiben oder den dort gespeicherten Wert abrufen. Der Computerspeicher ist auf sehr ähnliche Weise organisiert.
Das Programm und die Programmdaten werden bei laufendem Programm im Speicher abgelegt. Der gesamte Computerspeicher besteht aus kleinen Zellen, die Bytes genannt werden . Jeder Zelle ist eine eindeutige Kennung oder Nummer zugeordnet: 0
, 1
, 2
, 3
, ...; (Die Nummerierung beginnt bei Null). Wenn wir die Nummer einer Zelle kennen , können wir darin Daten speichern. Oder Daten daraus abrufen. Einige Zellen speichern den Programmcode, also den Befehlssatz für den Prozessor. Andere speichern die vom Programm verwendeten Daten. Die Nummer der Zelle wird auch Zellenadresse genannt .
Der Prozessor weiß, wie er Befehle ausführt, die in den Speicher geladen wurden. Fast alle Prozessorbefehle bestehen darin, Daten von einigen Zellen zu übernehmen , etwas damit zu tun und das Ergebnis dann an andere Zellen zu senden .
Wir kombinieren Hunderte einfacher Befehle, um komplexe und nützliche Befehle zu erhalten.
Wenn eine Variable im Code deklariert wird, wird ihr ein Teil des Speichers zugewiesen, der noch nicht verwendet wird. Dies sind normalerweise einige Bytes. Um eine Variable zu deklarieren, müssen Sie die Art der Informationen angeben, die das Programm darin speichern wird: Zahlen, Text oder andere Daten. Wenn Sie die Art der zu speichernden Informationen nicht kennen, ist schließlich nicht klar, wie viel Speicherblock für die Variable reserviert werden muss.
Zu Beginn des Computerzeitalters arbeiteten Programme direkt mit Speicheradressen, doch dann begann man, den Zellen aus Bequemlichkeitsgründen Namen zu geben. Ein eindeutiger Variablenname dient vor allem der Bequemlichkeit für Programmierer, da das Programm problemlos mit einfachen Speicheradressen umgehen kann.
2. Variablen im Speicher
Insgesamt verfügt Java über 4 Datentypen zum Speichern von Ganzzahlen. Dies sind byte
, short
und int
.long
Typ | Größe in Bytes | Herkunft des Typnamens |
---|---|---|
byte |
1 |
Byte ist eine bewusste Neuformulierung von Bite, um Verwechslungen mit Bit zu vermeiden |
short |
2 |
Abkürzung für Short Integer |
int |
4 |
Abkürzung für Integer |
long |
8 |
Abkürzung für Long Integer |
Darüber hinaus gibt es in Java zwei Typen für reelle Zahlen: Float und Double:
Typ | Größe in Bytes | Herkunft des Typnamens |
---|---|---|
float |
4 |
Abkürzung für Floating Point Number |
double |
8 |
Abkürzung für Double Float |
Jedes Mal, wenn die Programmausführung einen Befehl zum Erstellen einer Variablen erreicht, wird ihr ein kleiner Speicherblock zugewiesen (die Größe hängt vom Typ der Variablen ab).
Java-Programme dürfen nicht direkt auf den Speicher zugreifen. Jegliche Arbeit mit dem Speicher erfolgt ausschließlich über die Java Virtual Machine.
3. Der String
Typ im Speicher
Der String
Typ kann große Datenmengen speichern, was bedeutet, dass es sich nicht nur um einen Datentyp, sondern um eine vollwertige Klasse handelt.
Das String
Objekt wird in einem zugewiesenen Speicherblock abgelegt, der die Adresse eines anderen Speicherblocks speichert, in dem der Text gespeichert ist.
Die int
a
Variable belegt 4
Bytes und speichert den Wert 1
.
Die int
b
Variable belegt 4
Bytes und speichert den Wert 10,555
. Als Tausendertrennzeichen verwenden wir ein Komma. Und wir verwenden einen Punkt als Dezimaltrennzeichen.
Die double
d
Variable belegt 8
Bytes und speichert den Wert 13.001
.
Die String
str
Variable belegt 4
Bytes und speichert den Wert G13
, der die Adresse der ersten Zelle des Speicherblocks ist, der den Text enthält.
Ein Text String
object
wird in einem separaten Speicherblock gespeichert. Die Adresse seiner ersten Zelle wird in der str
Variablen gespeichert.
4. Warum die Nummerierung in der Programmierung bei Null beginnt
Die Leute fragen sich oft, warum Programmierer fast immer bei Null anfangen zu zählen. Tatsache ist, dass es viele Situationen gibt, in denen es bequemer ist, von Null aus zu zählen (natürlich gibt es auch Situationen, in denen es bequemer ist, von Null aus zu zählen 1
).
Das einfachste Beispiel hierfür ist die Speicheradressierung. 4
Wenn Ihrer Variablen Speicherbytes zugewiesen wurden und Sie wissen, dass dies X
die Adresse des ersten Bytes ist, wie lauten dann die Adressen jedes Bytes? , , , . So einfach ist das: Wir haben eine Gruppe von Bytes, auf die mit den Indizes , , , zugegriffen werden kann .X+0
X+1
X+2
X+3
0
1
2
3
Wenn wir an eine relative Adresse innerhalb eines Datenblocks denken, ist die Indizierung ab Null sinnvoll. Dies ist der Hauptgrund für das Zählen bei Null .