1-modul · 7-dars: Array
Daraja: Boshlang'ich
Array. Java Core bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Array tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Bir xil turdagi elementlarni ketma-ket saqlaydigan, o'lchami qat'iy (fixed) tuzilma.
`int[] a;` yoki `int a[];`, so'ng `a = new int[5];`, yoki to'g'ridan `int[] a = {1,2,3};`.
## Intervyuga tayyorgarlik ### Array nima? Bir xil turdagi elementlarni ketma-ket saqlaydigan, o'lchami qat'iy (fixed) tuzilma.
### Array-ni qanday e'lon qilishimiz mumkin? `int[] a;` yoki `int a[];`, so'ng `a = new int[5];`, yoki to'g'ridan `int[] a = {1,2,3};`.
### Turli data typelar uchun Array-ning default qiymati qanday? Butun sonlar — 0, `double`/`float` — 0.0, `boolean` — false, `char` — `\u0000`, reference/obyekt — null.
### Array yaratilgandan keyin size-ni o'zgartira olamizmi? Yo'q, array o'lchami o'zgarmas. O'zgartirish uchun yangi array yaratib, nusxa ko'chiriladi (yoki `ArrayList` ishlatiladi).
### Array-ning size-ini manfiy raqam belgilay olamizmi? Kompilyatsiya vaqtida emas, lekin runtime da `NegativeArraySizeException` tashlanadi.
### Array-ni size-siz e'lon qila olamizmi? E'lon qilsa bo'ladi (`int[] a;`), lekin `new int[n]` yoki initializer bilan o'lcham berilishi shart.
### Array JVM xotirasining qayerida saqlanadi? Heap da (array obyekt sifatida). Unga bo'lgan havola (reference) esa stack da bo'ladi.
### Primitive Array JVM-ning qaysi xotirasida saqlanadi? U ham Heap da saqlanadi — array o'zi obyekt, elementlar shu obyekt ichida.
### ArrayStoreException nima? Qachon tashlanadi? Reference array-ga mos kelmaydigan turdagi obyekt saqlaganda tashlanadi. Masalan `Object[] a = new String[2]; a[0] = 1;`.
### Anonymous Array nima? Misol keltiring. Nomsiz, bir marta ishlatiladigan array: `printAll(new int[]{1, 2, 3});`.
### Agar array-ni initialize qilmasangiz nima bo'ladi? Local array initsializatsiyasiz ishlatilsa compile error; field bo'lsa default `null` bo'ladi.
### Java-da Jagged Array nima? Qatorlari turli uzunlikdagi ko'p o'lchovli array: `int[][] a = new int[3][];`.
### Array-ning afzalliklari nimada? Indeks orqali tez kirish (O(1)), oddiy tuzilma, xotira ketma-ket joylashadi.
### Array-ning kamchiliklari nimada? O'lchami qat'iy, o'rtaga qo'shish/o'chirish qiyin va sekin, faqat bitta turdagi ma'lumot saqlaydi.
## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/1-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
int[] scores = {70, 85, 90};
int total = 0;
for (int score : scores) total += score;
System.out.println(total / (double) scores.length);
Keng tarqalgan xatolar
- `arr[arr.length]` ga murojaat qilish: indeks 0 dan boshlanadi, oxirgisi `length - 1`.
- Massiv uzunligini keyin o'zgartirsa bo'ladi deb o'ylash - buning uchun yangi massiv yoki `ArrayList` kerak.
Mashqlar
- Massivning eng katta va eng kichik elementini bitta yurishda toping.
- Ikki o'lchamli (jagged) massiv yaratib, har qatorining uzunligini chop eting.
Teglar: modul-01, pdp, nazariya