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