Sobes.tech
Junior — Middle

Ներկայացրեք Java լեզվում հղման տեսակների կոնցեպցիան և դրանց տարբերությունը հիմնական տեսակներից։

sobes.tech AI

Պատասխան AI-ից

Java-յում երկու հիմնական տվյալների տեսակ կա՝ primitive և reference types:

Primitive types (օրինակ՝ int, boolean, double) անմիջապես պահում են արժեքները։ Նրանք զբաղեցնում են ֆիքսված չափի հիշողություն և փոխանցվում են արժեքով։ Օրինակ՝ երբ մի փոփոխականը նշանակվում է մյուսին, ինքն արժեքը կոպիրվում է։

Reference types են օբյեկտներ և զանգվածներ։ Reference type փոփոխականը պահում է ոչ թե օբյեկտի արժեքը, այլ հղում (հասցե) այն հիշողության տարածքին, որտեղ գտնվում է օբյեկտը։ Երբ մի reference type փոփոխականը նշանակվում է մյուսին, կոպիրվում է հղումը, ոչ թե օբյեկտը։ Սա նշանակում է, որ երկու փոփոխականներն էլ ցույց են տալիս նույն օբյեկտին։

Օրինակ՝

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-ը անմիջապես պահում են արժեքները, իսկ reference types-ը պահում են հղումները օբյեկտների վրա հիշողության մեջ։