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ге).