Hogyan tárolja a java a memóriában tárolt adatokat?
Hogyan tárolja a Java a memóriában tárolt adatokat?
A bejegyzésben szereplő információk az Eckel B. Philosophy Java kiadvány (4. kiadás) alapján készültek.
Minden programnyelvnek van saját eszköze a memóriában tárolt adatok feldolgozásához. A Java-ban az összes adatot objektumként kezeli. A manipulálandó azonosító valójában egy hivatkozás az objektumra.
Ha egy hivatkozást definiál, ajánlatos egy új objektumhoz csatolni. Ez általában a kulcsszóval történik. Valójában ez azt jelenti: "Hozz létre egy új objektumot". Például
Hasznos lehet a program futtatása közben, és különösen, hogy az adatok tárolása a memóriában jól látható. Az adatok tárolására öt különböző hely van
Nyilvántartásban. Ez a leggyorsabb adattár, mert az adatok a processzoron belül tárolódnak. A regiszterek száma azonban szigorúan korlátozott, ezért szükség esetén a fordító a regisztereket használja. Ön, mint programozó, nincs közvetlen hozzáférése a regiszterekhez, nem találja még a legkevésbé nyomon követett támogatást a nyelvben.
Stack. Ez a tárterület közös RAM-ban (RAM) van, de a processzor közvetlen hozzáférést biztosít a veremmutató használatával. A kötegjelző lefelé mozog, hogy felszabadítsa a memóriát, vagy felfelé engedje el. Ez rendkívül gyors és hatékony módja az adatok elhelyezésének, csak a regisztereknél alacsonyabb sebességgel. A program feldolgozása során a Java fordítónak ismernie kell a veremre helyezett adatok életciklusát. Ez a korlátozás csökkenti a programok rugalmasságát, így bár egyes Java adatok tárolódnak a veremben (különösen az objektumokra vonatkozó hivatkozások), a Java objektumok maguk nem halmozódnak fel.
Egy csomó. Egy általános célú memória (amely szintén megtalálható a RAM-ban), amely az összes Java objektumot tárolja. A gyűjtemény előnye, hogy a fordítónak nem kell tudnia, hogy mennyi ideig léteznek ott létező objektumok. Így a halommal való együttműködés jelentős előnyt jelent a rugalmasságban. Ha objektumot kell létrehoznia, akkor az új kódot írja. és a memória a programgyártás során a gyűjteményből kerül kiosztásra. Természetesen a rugalmasságért fizetnie kell: a memória lekötése a memóriából több időt vesz igénybe, mint a veremben.
Tartós tárolás. Az állandó értékek gyakran közvetlenül a program kódjába épülnek, mivel változatlanok. Néha ilyen adatokat lehet elhelyezni állandó memóriában (ROM), amikor a "beágyazott" rendszerekről van szó.
Külső tárhely. Ha az adatok a programon kívül vannak tárolva, akkor is létezhetnek, ha nem hajtják végre. A két fő példa: menetes tárgyak (áramlott objektumok), amelyben objektumok formájában mutatják be egy folyam bájtok jellemzően használt transzfer más gépek, és hosszú élettartamú (tartós) tárgyakat, amelyek a lemezen tárolt és megtartják állapotban is vége után a program. A jellemzője az ilyen típusú adatok tárolása az átruházás lehetősége tárgyak valami, hogy lehet tárolni más média, majd visszaáll a normál tárgy RAM-ban tárolt. A Java, a szervezett támogató könnyű (könnyűszerkezetes) Perzisztencia és mechanizmusokat, mint a JDBC és Hibernate, jobb támogatást tárolására és visszakeresésére objektuminformációk az adatbázisból.