[Java] Drei Funktionen von Java
Java-Funktionen
- ** Objektorientierung **
- ** Java virtuelle Maschine **
- ** Müllabfuhr **
Objektorientiert denkt über Daten nach
- In erster Linie geht es darum, darüber nachzudenken, wie die Daten verarbeitet werden und was Sie tun möchten.
- In der Objektorientierung wird das im Programm behandelte Objekt durch ein Objekt dargestellt.
- Alles, was eine App ausmacht, wird durch Objekte dargestellt, und die Kombination bildet die App.
- ** Kapsel / integriere Daten und ihre Operationen und schreibe Code **
- Ein häufiger Fehler besteht darin, eine Methode zu schreiben, die auf die Daten eines anderen Objekts verweist, und die Methode des anderen Objekts verweist auf die Daten eines anderen Objekts.
- Die Methode von Objekt 1 wird bedeutungslos → Es wird als Datenobjekt bezeichnet (schlechte Kohäsivität)
- ** Die Daten von Objekt 1 müssen nach der Methode von Objekt 1 referenziert werden **
- Lassen Sie uns grundsätzlich Daten und Methoden integrieren!

Java Virtual Machine ist Binärcode
- Java läuft auf virtuellen Java-Maschinen
- Java ist eine verbesserte Version von C ++ (was man sagen kann), hat aber bei der Ausführung eine völlig andere Struktur.

C++
- Der PC wird mit Strom versorgt und die CPU läuft
- CPU läuft in Maschinensprache
- Assembler-Beschreibung (C / C ++) → Kompilieren → Maschinensprache (Binärcode)
- Assembler wird direkt zu einer Maschinensprache
- Nur Binärcode kann die CPU direkt ausführen
Java
- Läuft auf einer virtuellen Java-Maschine
- Erstellen Sie eine virtuelle Java-Maschine über der CPU
- Binärcode, mit dem Java Virtual Machines die CPU direkt ausführen können
- Die virtuelle Java-Maschine funktioniert nur, wenn JDK und JRE installiert sind
- Das Kompilieren von Java spuckt Zwischencode aus
- Zwischencode muss mit Binärcode ausgeführt werden
- Langsamer als C ++, das die CPU direkt ausführt, weil es Zwischencode durchläuft (sagte)
- Java ist also nicht langsam

Die Speicherbereinigung gibt automatisch Speicher frei
Konfiguration von CPU / Speicher (DRAM) / Speicher (HDD / SSD)
- CPU / DRAM hat Beine auf der Platine stecken
- Verbunden über Datenbus und Adressbus
- Die Kapazität, die DRAM speichern kann, beträgt 8 Byte
- ** Adressbus ** signalisiert, auf welche Adresse von 0-7 Sie zugreifen möchten
- ** Databus ** gibt seinen Inhalt aus
- ** CPU / Speicher befindet sich auf einer Grundlage **
- Unabhängig davon ist es direkt verbunden
- Der Adressbus hat einen Port namens ** E / A-Port **, der den E / A-Bereich angibt.
- ** HDD / SSD ist an E / A-Port angeschlossen **
- Der Speicher (HDD / SSD) ist nicht direkt mit der CPU verbunden, und der DRAM ist direkt verbunden.
- Der Speicher der CPU verschwindet, wenn die Stromversorgung nicht eingeschaltet wird und die Festplatte auf das magnetische Material schreibt, sodass er auch bei ausgeschaltetem Strom erhalten bleibt.
- Speicherchiptyp
- ** DRAM **: DDR4-Standard usw. (Standard, der den CPU-Zugriff und die Latenz bestimmt)
- ** SRAM **: Hohe Geschwindigkeit (ich benutze es jetzt nicht viel)
- ** Flash-Speicher **: Wird als externer Speicher (SSD usw.) verwendet.

Wie das Gedächtnis funktioniert
- Zum Beispiel im Fall von Z80
8 Datenbusse + 16 Adressbusse (= gibt die Adresse an, auf die die CPU zugreifen möchte)
- 0000 0000 0000 0000 ~ 1111 1111 1111 1111 kann zugegriffen werden
- Bei Z80 mit 8-Bit-CPU gibt es ** 0 bis 65535 **
- ** Für die virtuelle Java-Maschine muss das Betriebssystem keinen Speicher verwenden **
- ** Das Betriebssystem hat eine Funktion zum Verwalten des Speichers in Blöcken **
- Die virtuelle Java-Maschine benötigt 100 Byte Speicher vom Betriebssystem
- Geben Sie eine nicht verwendete Adresse, die vom Betriebssystem verwaltet wird, an die virtuelle Maschine zurück
- Java kann diesen Speicher verwenden
- ** Speicherverlust **: Wenn eine virtuelle Maschine in einer bestimmten Anwendung verwendet wird und stirbt, ohne das Ende mitzuteilen, bleibt sie für 100 Byte verwendet und kann nicht für andere Bereiche verwendet werden.
- Verwenden Sie in C / C ++ einen Zeiger, weisen Sie ihn mit einem Speicherzuweiser zu und geben Sie ihn mit einer Freigabeanweisung frei.
- In Java wird der bereitgestellte Speicher von der Java-Maschine des JDK gesteuert.
- Write
hoge = null;
oder ** gibt den Speicher automatisch frei, wenn die Java Virtual Machine geschlossen wird **
