Java-Performance: der Beim löschen eines Objekts ist es besser, auf null gesetzt oder ein neues Objekt erstellen.

Wenn ein Objekt wiederholt, ist es besser, um die Daten zu löschen, indem Sie Sie auf null, oder instanziieren Sie ein neues Objekt?

   Object a = new Object();
   for(...){
       ...
       a = null;
       **OR**
       a = new Object();
    }

Hier ist das Beispiel, das ich mich beziehe:

Customer a = new Customer();
Collection<Customer> data = new ArrayList<Customer>();

        while (rs != null && rs.next()) {   
            a = new Customer();
            a.setCustId(rs.getLong("CUST_ID"));
            a.setPerNo(period);
            a.setName(rs.getString("cust_nm"));

            if(a!= null)
                data.add(a);
        }

Frage ich mich, ob die

a = new Customer();

ist der beste Weg, dies zu tun, oder sollte anders gemacht werden, um Speicher zu sparen und für eine optimale performance, da jede Schleife hat neue Informationen über die Kunden zu setzen. Von meinem Verständnis, wenn Sie einen neuen Kunden erstellen Sie erstellen ein neues Objekt und verweisen auf das neue Objekt. Also das alte Objekt weist darauf erhalten Abholung durch den garbage collector - das gleiche im Falle der Einstellung auf null. Ist dies ein korrektes Verständnis?

  • Erstellen Sie einen neuen Kunden für jede Zeile der Ergebnismenge, sonst wirst du am Ende mit dem gleichen Objekt in der Liste die gleiche Anzahl von Zeiten als es Zeilen in der Ergebnismenge mit seiner Attribute gesetzt nach der letzten Zeile in der Ergebnismenge. Auch die null-check ist unnötige, a darf nicht null sein.
  • Es sei denn, etwas ist geschehen zwischen a.setName und if(a!=null), dass if(a!= null) test ist völlig überflüssig. Es wird immer passieren.
InformationsquelleAutor Brad Germain | 2011-07-28
Schreibe einen Kommentar