Wird eine Instanzmethode pro Objekt oder Klasse in den Speicher geladen?

7

Wenn ich ein Objekt O mit einer gigantischen Methode f() habe und 10000 Beispiele von O in den Speicher lade. Werden 10000 Beispiele von f() ebenfalls in den Speicher geladen? Wenn ja, bedeutet das, dass ich Speicher sparen würde, indem ich diese Funktion möglichst statisch mache?

    
pgsandstrom 17.02.2011, 16:00
quelle

4 Antworten

9

Instanzmethoden werden in den Methodenbereich in JVM geladen. es wird einmal geladen, aber es wird viele Stapel für jeden Aufruf geben, die Sie zu f () machen, um eigene lokale Variablenwerte zu verfolgen.

    
Dead Programmer 17.02.2011, 16:04
quelle
6

Nein. Es gibt nur eine Instanz der Methode geladen.

    
qbert220 17.02.2011 16:03
quelle
2

Instanz Methode ist nur eine Vorlage und ist in einer Klasse definiert (nicht in jeder Instanz). Sie würden Speicher nicht sparen, indem Sie ihn statisch machen.

    
Viktoras Agejevas 17.02.2011 16:04
quelle
2

Nein. Methoden sind nicht Teil von Instanzen; Sie sind Teil von Klassen. Es würde keinen Sinn machen, den Code für jede Instanz zu wiederholen (weil er niemals variieren würde), daher ist die Implementierung einfach klüger als das.

    
Karl Knechtel 17.02.2011 16:09
quelle