Sobes.tech
Middle

Kas on linke, mis näitavad, kuidas prügikorjaja töötab?

sobes.tech AI

Vastus AI-lt

Jah, võimalik on luua näiteid, mis näitavad prügikoristaja mõju:

// Näide 1: Suurte objektide loomine

public class GarbageCollectionDemo1 {

    public static void main(String[] args) {
        List<DummyObject> objects = new ArrayList<>();
        for (int i = 0; i < 1000000; i++) {
            objects.add(new DummyObject(i)); // Loome palju objekte
        }
        // Sel hetkel võib prügikoristaja kutsuda, et vabastada mälu
        // kui nimekirja objektid ei kasutata mujal:
        // Isegi kui seda otseselt ei kutsuta, töötab see vajadusel:

        // Nimekirja puhastamine võib potentsiaalselt vabastada mälu
        objects.clear(); 

        System.gc(); // Selge prügikoristaja kutsumine (ei garanteeri täitmist)
    }

    static class DummyObject {
        private int id;

        public DummyObject(int id) {
            this.id = id;
        }

        @Override
        protected void finalize() throws Throwable {
            // finalize meetod kutsutakse enne prügikoristust (ei garanteeri ja ei soovitata)
            // System.out.println("Objekt kogutakse, id: " + id);
        }
    }
}