private static final vs private final

Diese Frage gestellt wurde hier. Wie pro die Antwort :

private final int NUMBER = 10;

Wenn es sich nicht ändern kann, es hat keinen Sinn, eine Kopie pro Instanz.

Meine Zweifel, was ist, wenn Instanz der Klasse erstellt wurde, sagen wir einmal am Tag und es dauert etwa ein paar Sekunden. Ist es eine gute Idee, um die int(in einigen Fällen-Objekt) im Speicher?

Vorausgesetzt, es sind viele (20-30) solche Objekte.

  • Ihre Frage jetzt, ist der Umgang mit vorzeitiger Optimierung. Wenn Sie wirklich wollen, in Frage zu stellen, dann werden Sie brauchen, um mit realistischen zahlen für einige bestehende Speicher-beschränkten embedded-Gerät.
  • Vereinbaren Sie mit skiwi. Spielt es eine Rolle? Who cares? Garbage collection ist mehr als fähig, den Umgang mit solchen "Abfall".
  • Nur denken Sie daran: private Modifikator bedeutet, dass nur (Instanzen) dieser Klasse können zugreifen und ändern Sie die Eigenschaft. final bedeutet, dass der Wert nicht mehr geändert werden, nachdem der Objekterstellung. So, es sei denn, Sie setzen den Wert im Konstruktor (Letzte zulässige moment) der Wert ist gong werden die gleichen für alle Instanzen der Klasse - ich.e Sie können auch erklären static
  • In der Tat, angesichts der Speicherverbrauch ist in der Tat etwas verfrüht-Optimierung. Es sollte nicht berücksichtigt werden. Was ja viel wichtiger ist, ist die design-Frage. Wo kommt das Feld gehören? Für die Klasse oder für jede Instanz? Zum Beispiel: Ist es eine Konstante, die gibt nur einen Magie-Wert, der im Rahmen dieser Klasse, einen Namen? Dann machen Sie es statisch; es gehört zu der Klasse. Nachdem dies gesagt ist, glaube ich, fast alle final-Felder initialisiert werden bei der Deklaration sind solche Konstanten.
InformationsquelleAutor Batty | 2014-03-24
Schreibe einen Kommentar