Speicherverwaltung bei Instanz- und Klassenvariablen JS vs. Java

Saheeda

Top Contributor
Hi,

momentan beschäftige ich mich relativ viel mit Javascript und bin auf das Konzept der Protoypes gestoßen:

OOP in JavaScript || Prototype
Es ist also sinnvoller konstante Werte im Prototypen zu definieren anstatt Sie in jeder Instanz zu hinterlegen, denn dort belegen Sie wesentlich mehr Speicher. Aus dem selben Grund sollte man sofern kein Zugriff auf private Eigenschaften benötigt wird öffentliche Methoden an Stelle von privilegierten verwenden.
Java:
/* bad way */

Car = function(){
	this.doors = 4;
	this.getDoors = function(){ // privileged method
		return this.doors;
	}
}

myCar = new Car();
alert(myCar.getDoors()); // 4

/* better way */

Car = function(){

}

Car.prototype.doors = 4;

Car.prototype.getDoors = function(){ // public method
	return this.doors;
}

myCar = new Car();
alert(myCar.getDoors()); // 4

Dabei habe ich mich gefragt: Wie wird der Speicher eigentlich in anderen Sprachen wie eben Java organisiert?
Felder werden exklusiv für jede Instanz verwaltet, statische Variablen "zentral" in einem "Klassenregister" (Man verzeihe mir den etwas holprigen Begriff, mir fällt nur kein besserer ein).

Was aber ist z.B. mit Methoden? Bekommt jede Instanz nur eine Referenz auf das Klassenregister oder werden die Methoden ebenfalls für jede Instanz einzeln angelegt?

Was ist mit konstanten primitiven Datentypen? Werden diese auch für jede Instanz angelegt oder im Klassenregister?

Was ist mit vererbten Feldern/Methoden, die ich aber nicht benutze? Existiert da "im Hintergrund" trotzdem ein Verweis auf die parent-Felder? So nach dem Motto "Wenn dus brauchen solltest: Da isses"?


Vom Speicherbedarf her fände ich es logisch, beispielsweise Methoden zentral zu verwalten, aber dann wären es ja wieder Klassen- und keine Instanzmethoden, was aber imho die Objektorientierung verletzt... I don't know.
 

Saheeda

Top Contributor
@Gucky
Ich mòchte ja auch gern wissen, wie das bei anderen Sprachen wie Java organisiert wird. Die Umleitung zu JS musste nur sein, weil ich dadurch auf die Frage gekommen bin.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Speicherverwaltung bzw. Speicher wieder frei geben?! Allgemeine Java-Themen 8
V Java, Speicherverwaltung und optimale Lastverteilung Allgemeine Java-Themen 3
G Eigene "Speicherverwaltung" Allgemeine Java-Themen 5
M Speicherverwaltung Allgemeine Java-Themen 8
M Speicherverwaltung unter Linux Allgemeine Java-Themen 7
D Speicherverwaltung von Java Allgemeine Java-Themen 2
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
Thallius HTTPS Request mit unbekannter Instanz Allgemeine Java-Themen 24
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
OnDemand InetAddress Instanz Allgemeine Java-Themen 4
T Klassen Instanz einer Klasse ausserhalb des Jar Allgemeine Java-Themen 2
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
B JavaFX fxml, die selbe Instanz der Klasse Allgemeine Java-Themen 4
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
DStrohma In abstrakter Klasse Konstruktor von Instanz implementieren Allgemeine Java-Themen 11
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
S Singleton Instanz löschen Allgemeine Java-Themen 5
Kr0e Reflection - Instanz einer Klasse erstellen, ohne Default-Constructor Allgemeine Java-Themen 15
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10
M Object-Instanz in Date übersetzen Allgemeine Java-Themen 6
M Neue Instanz/Kopie einer unbekannten Klasse Allgemeine Java-Themen 7
M Instanz "von außen" erstellen unterbinden Allgemeine Java-Themen 3
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
V Reflection - Field-Instanz und Annotations Allgemeine Java-Themen 6
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
J Instanz-Felder einer Klasse initialisieren Allgemeine Java-Themen 6
N Variablen eines Objektes (instanz) in einen Array lesen Allgemeine Java-Themen 7
M Instanz von Datenbankklasse Allgemeine Java-Themen 5
M Instanz erstellen Allgemeine Java-Themen 3
flashfactor Prüfen ob bereits eine Instanz gestartet ist Allgemeine Java-Themen 2
A Nur eine Instanz eines Programms ausführen Allgemeine Java-Themen 3
T Instanz einer Interface abgeleiteten Klasse erzeugen Allgemeine Java-Themen 3
I size einer instanz Allgemeine Java-Themen 9
minzel Instanz auslesen? Allgemeine Java-Themen 22
G überpüfen ob bereits instanz von java applikation läuft Allgemeine Java-Themen 4
B Instanz? Allgemeine Java-Themen 6
H Vererbung auch ohne erzeugung einer Instanz möglich? Allgemeine Java-Themen 3
B nur eine Instanz eines Programms laufen lassen Allgemeine Java-Themen 8
G Nur eine Instanz einer Applikation Allgemeine Java-Themen 4
G Instanz IDs Allgemeine Java-Themen 13
P Nur eine Instanz eines Programms zulassen, wie geht das? Allgemeine Java-Themen 15
J Instanz einer inneren Klasse Allgemeine Java-Themen 9
H Methode einer zur Laufzeit generierten Instanz aufrufen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben