Sobes.tech
Middle

Kas primitiivne andmetüüp saab asetada Heap-i?

sobes.tech AI

Vastus AI-lt

Ei, primitiivsed andmetüübid (byte, short, int, long, float, double, boolean, char) salvestatakse virnas (Stack Memory). Objekid, sealhulgas primitiivsete tüüpide ümbrised, salvestatakse virnale (Heap Memory).

Kuid primitiivsed tüübid võivad olla osa objektist, mis asub virnas. Sellisel juhul salvestatakse primitiivsete tüüpide väljad samasse mäluplokki virnas, mis on objekti enda oma.

Näiteks:

// Primitiv int salvestatakse virnas
int x = 10;

// Objekti Integer (primitiivse tüübi ümbris) salvestatakse virnale
Integer y = 20;

// Objekti MyObject salvestatakse virnale
MyObject obj = new MyObject();
class MyObject {
    // Primitiv int "sisemiselt" objekti, mis asub virnas
    int value;
}

Selles näites on value objekti obj väli ja see salvestatakse virnale osana sellest objektist. Kuid primitiivset tüüpi ei saa eraldi objekti juurest virnas hoida.