Sobes.tech
Junior — Middle

Чӣ гуна фарқ кардани намудҳои асосии маълумот аз объектҳои истинод дар забони барномасозӣ?

sobes.tech AI

Ҷавоб аз AI

Дар забонҳои барномасозӣ, намудҳои асосии маълумот (примитивҳо) ва объектҳои ишорашаванда дар усули нигоҳдорӣ ва интиқол фарқ мекунанд.

  • Намудҳои асосии маълумот (масалан, int, float, boolean дар Java/Android) дар стек нигоҳ дошта мешаванд ва ба таври мустақим арзишро доранд. Ҳангоми гузаронидани тағирёбанда, худи арзиш нусхабардорӣ мешавад.
  • Объектҳои ишорашаванда (масалан, объектҳои синфҳо) дар heap нигоҳ дошта мешаванд ва дар тағирёбанда ишора (пойнтер) ба объект нигоҳ дошта мешавад. Ҳангоми гузаронидан, танҳо ишора нусхабардорӣ мешавад, на худ объект.

Масалан:

int a = 5;
int b = a; // нусхабардории арзиши 5
b = 10;
// a ҳоло ҳам 5

String s1 = new String("hello");
String s2 = s1; // нусхабардории ишора ба объект
s2 = "world";
// s1 ҳоло ҳам "hello" (String дар Java тағйирнопазир аст)

Тавре ки мебинем, намудҳои асосӣ маълумотро мустақиман нигоҳ медоранд, объектҳои ишорашаванда бошад, тавассути ишора ба объект дар ёддошт нигоҳ дошта мешаванд.