Sobes.tech
Junior — Middle

გთხოვთ, ახსნათ Java ენის რეფერენციული ტიპების კონცეფცია და რა განსხვავებაა მათ შორის პრიმიტიული ტიპებისგან.

sobes.tech AI

პასუხი AI-სგან

Java-ში არსებობს ორი ძირითადი მონაცემთა ტიპი: primitive და referencetypes.

Primitive ტიპები (მაგალითად, 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 — ობიექტების მისამართებს მეხსიერებაში.