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.