Sobes.tech
Middle

Behelyezhető-e egy primitív adattípus a Heap-be?

sobes.tech MI

Válasz az MI-től

Nem, az alapvető adattípusok (byte, short, int, long, float, double, boolean, char) a veremben (Stack Memory) tárolódnak. Az objektumok, beleértve az alapvető típusok csomagolásait is, a heapben (Heap Memory) tárolódnak.

Azonban az alapvető típusok részei lehetnek egy olyan objektumnak, amely a heapben található. Ebben az esetben az alapvető típusú mezők ugyanabban a memória blokkban lesznek a heapen, mint maga az objektum.

Például:

// Egy primitív int a veremben tárolódik
int x = 10;

// Egy Integer objektum (a primitív típus csomagolása) a heapben tárolódik
Integer y = 20;

// Egy MyObject objektum a heapben tárolódik
MyObject obj = new MyObject();
class MyObject {
    // Egy primitív int "belül" az objektumban, amely a heapben található
    int value;
}

Ebben az esetben a value az obj objektum egyik mezője, és a heapben tárolódik ennek az objektumnak a részeként. De a primitív típus nem tárolható külön az objektumtól a heapen.