Alapjai memória kezelése a java

Általános információk a memória kezelése

Memória kezelése - a folyamat forgalomba az új objektumok és eltávolítja a nem használt tárgyakat, hogy helyet csináljanak az új juttatások tárgyak. A hagyományos nyelvi memória kezelése módszer egy kézi programozást. Ennek lényege a következő:

  • Ahhoz, hogy hozzon létre egy objektumot a kupac programozó kifejezetten felkéri memóriafoglalási parancsot. Ez a parancs visszaad egy pointert a lefoglalt memória terület, amely tárolja és használt hozzáférni.
  • Mindaddig, amíg a létrehozott objektum szükséges a program, a program fér át egy korábban mentett pointer.
  • Ha nincs tárgy elhalad, a programozó kifejezetten felkéri felszabadítása parancsot, átadva neki a mutató egy törölt objektum.
  • Manuális memória kezelése lehetővé teszi, hogy a potenciálisan lehetséges két probléma: Függő referenciák és memóriavesztés.

memóriavesztés - a folyamat kontrollálatlan mennyiségének csökkentése a szabad RAM vagy virtuális memória, egy hiba miatt a futó program, az idő nem mentesíti a felesleges részeinek memóriában.

Minden probléma manuális memória kezelési módszer Java megoldja az automatikus szemétgyűjtő. De mielőtt megismerkedett a szemétgyűjtő, szükséges tisztázni a fogalmát halom (heap).

A Java, minden tárgy a területen memória, az egy halom. Egy rakás létre, amikor a JVM elindul és növelhető vagy csökkenthető a méret a futás során. Ha egy halom megtelik, van egy szemétgyűjtő mechanizmus. Minden tárgy, hogy soha többé nem ispolzovat törlődik. így szabadítva fel helyet az új tárgyakat.

Azt is meg kell megjegyezni, hogy a JVM több memóriát fogyaszt, mint egy rakás tart. Például, a Java módszerek és menet stack, memóriát elkülönítve a halom.

kupac mérete függ a platform, de általában valahol 2 és 128 KB.

Garbage Collection

A mechanizmus a szemétgyűjtő - ez a folyamat felszabadítva helyet a kupac, hogy képes legyen új objektumokat.

Által létrehozott objektumok az új üzemeltető, így rendel egy objektum referenciát. Amikor befejezte a tárgyat, akkor egyszerűen megszűnik hivatkozni rá - csak meg a változó hivatkozik egy másik tárgy, vagy null vagy megszüntetheti az eljárás foganatosítása, hogy a lokális változók befejezték a létezés természetes módon. Tárgyak, linkek, amelyeket rendszerint nem nevezett szemét (szemét), amelyet el kell távolítani.

A memória felszabadul a szemétgyűjtő saját „belátása”, és általában csak olyan esetekben, amikor a további munka program előírja szabad hely fragmentum nagyobb, mint ami rendelkezésre áll egy virtuális gép elérhető ebben az időpontban, vagy ha a szemétgyűjtő, „előrejelzi” potenciális kevés a memória a közeljövőben. A program lehet (és gyakran ez a helyzet), hogy befejezze a munkát anélkül, hogy fárasztó álló memória, vagy akár közel ezen a vonalon, és így nem volt szüksége a „szolgáltatás” a szemétgyűjtő. Az objektum tekinthető „még megfoghatatlan”, ha egyik változó a futó kód a pillanatban, nem tartalmaz semmilyen utalást, vagy egy lánc kapcsolatok, amelyek összekapcsolják a tárgy egy változtatható program befejeződik.

A hulladékok begyűjtését a rendszer az Ön közreműködése nélkül, de ez nem jelenti azt, hogy a folyamat nem igényel figyelmet egyáltalán. Annak szükségességét, hogy hozzon létre és törölhet számos lehetőség van jelentős hatással az alkalmazás teljesítményét, és ha a sebesség a program fontos tényező, akkor alaposan gondolja kapcsolatos döntések tárgyak létrehozását - ez viszont csökkenti a hulladék mennyiségét és selejtezését.

Kapcsolódó cikkek