Тавзеҳ диҳед дар бораи консепсияи намудҳои истинодӣ дар забони Java ва чӣ гуна онҳо аз намудҳои ибтидоӣ фарқ мекунанд.
sobes.tech AI
Ҷавоб аз AI
Дар Java мавҷуд аст ду навъи асосии маълумот: primitives ва referencetypes.
Primitives (масалан, int, boolean, double) ба таври мустақим арзишҳоро нигоҳ медоранд. Онҳо андозаи доимӣ дар хотираро ишғол мекунанд ва тавассути арзиш гузаронида мешаванд. Масалан, вақте ки як тағйирёбандаро ба дигаре таъин мекунед, худи арзиш нусхабардорӣ мешавад.
Referencetypes объектҳо ва массивҳо мебошанд. Як тағйирёбандаи referencetype на арзиши объектро нигоҳ медорад, балки ишора (суроға) ба минтақаи хотирае, ки объект дар он ҷойгир аст. Вақте ки як тағйирёбандаи referencetype ба дигаре таъин мешавад, ишора нусхабардорӣ мешавад, на объект. Ин маъно дорад, ки ҳарду тағйирёбанда ба як объект ишора мекунанд.
Масалан:
int a = 5;
int b = a; // арзиши 5 нусхабардорӣ мешавад
b = 10; // a боқӣ мемонад 5
String s1 = new String("hello");
String s2 = s1; // ишора ба объект нусхабардорӣ мешавад
s2 = "world"; // s1 боқӣ мемонад "hello", зеро String тағйирнопазир аст
Аз ин рӯ, фарқи асосӣ дар усули нигоҳдорӣ ва интиқоли маълумотҳо аст: primitives арзишҳоро мустақиман нигоҳ медоранд, referencetypes ишораҳоро ба объектҳо дар хотира нигоҳ медоранд.