Sobes.tech
Intern

Баштапкы жана шилтемелүү маалыматтардын айырмасы эмнеде?

sobes.tech AI

AIден жооп

Прамітыўдүү түрлөр түздөн-түз маанини сактайт, ал шилтемелүү түрлөр — объекттин дареги (мекен-жайы) боюнча шилтемени сактайт, ал маанини камтыйт.

Прамитивдүү түрлөр:

  • белгилүү жана кичинекей эс тутумду ээлейт.
  • мааниси боюнча өткөрүлөт (өзүнчө мааниси көчүрүлөт).
  • кичинекей тамгадан башталат.
  • кирет: byte, short, int, long, float, double, boolean, char.
// Прамитивдүү түрдүн мисалы
int a = 10;
int b = a; // 10 мааниси көчүрүлөт
b = 20;   // гана b өзгөрөт, a калат 10

Шилтемелүү түрлөр:

  • ар кандай эс тутум өлчөмүн ээлейт, объекттин мазмунуна жараша.
  • шилтемелер аркылуу өткөрүлөт (объекттин дареги көчүрүлөт). Объектке өзгөртүү шилтемеге таасир этет.
  • көбүнчө чоң тамгадан башталат (кластар).
  • кирет: класстар (String, Object, колдонуучу класстар), интерфейстер, массивдер.
// Шилтемелүү түрдүн мисалы
String str1 = new String("Hello");
String str2 = str1; // "Hello" объектине шилтеме көчүрүлөт
str2 = "World";   // str2 эми жаңы "World" объектисине шилтеме кылат. str1 дагы эле "Hello"га шилтеме кылат.

// Муттабельдүү объект менен башка мисал
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
ArrayList<Integer> list2 = list1; // ошол эле ArrayList объектисине шилтеме
list2.add(2); // объектке элемент кошуу, эки шилтемеден да жеткиликтүү
// Эми list1 [1, 2], list2 [1, 2] болот

Кыскача салыштыруу таблицасы:

Өзгөчөлүк Прамитивдүү түрлөр Шилтемелүү түрлөр
Сактоо Мааниси Объекттин шилтемеси
Өткөрүү Мааниси боюнча Шилтемеге ылайык
Эмгек өлчөмү Туура өлчөмдө Өзгөрмөлүү
Башталышы Кичинекей тамгадан башталат Көп учурда чоң тамгадан башталат
Null мүмкүнчүлүгү null болбойт null болушу мүмкүн

Прамитивдүү түрлөр тиешелүү класстар-оболочкаларга (wrapper classes) оролуп, объект катары иштөө үчүн колдонулат (мисалы, int Integerге).