Sobes.tech
Senior

Mi az a memória szivárgás Java-ban, még a szemétgyűjtővel is?

sobes.tech MI

Válasz az MI-től

A Java memória szivárgás olyan helyzet, amikor a már nem szükséges objektumok elérhetőek maradnak a gyökér hivatkozásokból, és nem kerülnek eltávolításra a szemétgyűjtő által. Bár az automatikus szemétgyűjtés megtörténik, ha a program továbbra is tartalmaz hivatkozásokat a szükségtelen objektumokra (például gyűjteményekben, gyorsítótárakban vagy statikus mezőkben), a memória nem szabadul fel, ami a memóriahasználat növekedéséhez és esetleg OutOfMemoryError-hoz vezet.

Példa: ha egy listába folyamatosan objektumokat adunk hozzá, de a régieket nem töröljük, a lista növekedni fog, és a memória nem szabadul fel, még akkor sem, ha az objektumokat már nem használják a program logikájában.