tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
232
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    jeipack jeipack ist offline Mitglied Brokat
    Registriert seit
    Feb 2007
    Beiträge
    391
    HI
    Wenn ich zwei Objekte habe die auf das jeweils andere zeigt, diese Objekte aber sonst nicht mehr referenziert sind (sprich, sie sind aus dem Code nicht mehr erreichbar). Werden diese vom garbage collector gelöscht oder liegen die dann für immer tod im Speicher rum?

    Gruss
    jeipack
     
    Konnte ich dir helfen? Dann würde ich mich über eine prositive Bewertung freuen ;)

    ----------------------
    Pofessional tutorials.de lover ;)

  2. #2
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Soweit ich das gehört habe erkennt der Garbage Collector solche Konstellationen, kann ich aber nicht 100% sagen.
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  3. #3
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Wenn beide Objekte nicht mehr referenziert sind JA.

    Dies kannst du durch Heap dump erzeugen und manuelles GC ausführen (oder lange genug warten)(von der JConsole z.B.) herausfinden.

    Wenn du genaueres wissen willst brauchen wir schon ein Beispiel
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  4. #4
    jeipack jeipack ist offline Mitglied Brokat
    Registriert seit
    Feb 2007
    Beiträge
    391
    Ein Beispiel? ja ok ich versuchs ein mal:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    
    class Workingclass {
    public Workingclass() {
     
    Yin yin = new Yin();
    Yang yang = new Yang();
     
    yin.setYang(yang);
    yang.setYin(yin);
     
    yin=null;
    yang=null;
    //yin und yang sind nun nicht mehr referenziert
    //besitzen allerdings untereinander noch eine Referenz.
    //werden diese Objekte nun gelöscht oder nicht?
    }
     
    public static void main(String[] args) {
    new Workingclass();
    }
    }
     
    class Yin {
    Yang yang;
     
    public Yin() {
    }
     
    void setYang(Yang y) {
    yang=y;
    }
    }
     
    class Yang {
    Yin yin;
     
    public Yang() {
    }
     
    void setYing(Yin y) {
    yin =y;
    }
    }
    //(gefundene Fehler darf man behalten ;))

    Das ist etwa das was ich meine. Eine Stufe weiter wäre noch wenn Yin/Yang noch eine Refferenz zum Workingclass-Objekt bekommen würden, würde das einen Unterschied machen? Eigentlich nicht oder?


    Gruss
     
    Konnte ich dir helfen? Dann würde ich mich über eine prositive Bewertung freuen ;)

    ----------------------
    Pofessional tutorials.de lover ;)

  5. #5
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    kurz um....ja.

    Da es ja selbst nicht mehr referenziert ist wird es nicht gezählt und kann somit aufgeräumt werden.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. Spring Application Context - wird er durch den Garbage Collector freigegeben?
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 24.08.10, 15:51
  2. Applet, garbage collector wird nicht ausgeführt
    Von lazydog im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 07.05.09, 18:59
  3. Garbage Collector in C#?
    Von Benny_Ben_Ben im Forum .NET Café
    Antworten: 1
    Letzter Beitrag: 30.04.07, 09:15
  4. Garbage-Collector!
    Von lernen.2007 im Forum Java
    Antworten: 2
    Letzter Beitrag: 28.12.05, 14:46
  5. Problem mit Garbage Collector
    Von Serethos im Forum Java
    Antworten: 4
    Letzter Beitrag: 07.12.04, 16:21