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-ում անփոփոխ է)

Այսպիսով, հիմնական տիպերը պահում են տվյալները ուղղակի, իսկ հղումային օբյեկտները՝ հղումով դեպի օբյեկտը հիշողության մեջ։