3-modul · 10-dars: Legacy Collections · i18n · Wildcard

Daraja: O'rta

Legacy Collections · i18n · Wildcard. Exception va Collections bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Legacy Collections · i18n · Wildcard tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Key-value (String-String) sozlamalarni saqlaydigan `Hashtable` avlodi class — konfiguratsiya uchun.

Ilova sozlamalari, til/matn va konfiguratsiya fayllarini o'qish/yozishda.

## Intervyuga tayyorgarlik ### Properties nima? Key-value (String-String) sozlamalarni saqlaydigan `Hashtable` avlodi class — konfiguratsiya uchun.

### Properties-lardan qayerda foydalanamiz? Ilova sozlamalari, til/matn va konfiguratsiya fayllarini o'qish/yozishda.

### Properties qaysi fayllardan o'qish va yozishimiz mumkin? `.properties` (matn) va `.xml` fayllardan (`load()`, `store()`, `loadFromXML()`).

### HashTable nima? Synchronized, eski (legacy) hash asosidagi Map; null key/value ga ruxsat bermaydi.

### HashTable-ni qachon ishlatamiz? Legacy kodda; yangi kodda thread-safe kerak bo'lsa `ConcurrentHashMap` afzal.

### HashTable-ning loadFactory va initial capacity-si? Capacity 11, load factor 0.75.

### HashTable thread-safe mi? Ha — methodlari `synchronized`.

### HashTable da hashCode() va equals() contractlarni buzmaslik kerakmi? Ha — key sifatida ishlatilgan obyektlarda `equals()` va `hashCode()` to'g'ri va mos yozilishi shart, aks holda izlash noto'g'ri ishlaydi.

### Stack nima? LIFO tuzilma; `Vector` dan meros olgan legacy class (`push`, `pop`, `peek`).

### Stack Java-ning nechinchi versiyasida qo'shilgan? Java 1.0 dan.

### Deque va Stack o'rtasidagi farq? Stack legacy va synchronized (sekin); `Deque` (`ArrayDeque`) zamonaviy, tezroq va stack sifatida tavsiya etiladi.

### Stack synchronized mi? Ha (Vector dan meros olgani uchun).

### Stack initial capacity va loadFactory-si? Vector dan: capacity 10, o'lchami to'lganda 2 barobar oshadi.

### Stackdan necha xil usulda elementlarni olishimiz mumkin? `pop()`, `peek()`, `get()`, `Iterator`, `for-each`.

### i18n nima? Internationalization — ilovani turli til va mintaqalarga moslashtirish (18 — «internationalization» so'zidagi ichki harflar soni).

### ResourceBundle nima? Til/mintaqaga qarab matn va sozlamalarni (`.properties` fayllardan) yuklaydigan class.

### ResourceBundle-ni qanday holatlarda ishlatamiz? Ilova matnlarini bir necha tilga tarjima qilish (lokalizatsiya) uchun.

### Wildcard Type nima? Generic-da noma'lum turni ifodalovchi `?` belgisi (masalan `List<?>`).

### Wildcard Typelardan qanday holatlarda foydalanamiz? Turlar oilasi bilan moslashuvchan ishlash kerak bo'lganda (`? extends T` — o'qish, `? super T` — yozish uchun).

### Wildcard Type Java-ning nechinchi versiyasida qo'shilgan? Java 5 (generics bilan).

### super va extends keywordlarini tushuntiring. `? extends T` — T yoki uning avlodlari (upper bound, o'qish uchun); `? super T` — T yoki uning ajdodlari (lower bound, yozish uchun). Qoida — PECS: Producer-Extends, Consumer-Super.

## 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/3-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/api/collections-framework/) [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

// Klass ichidagi metod: producer extends.
static double sum(java.util.List<? extends Number> numbers) {
  double total = 0;
  for (Number n : numbers) total += n.doubleValue();
  return total;
}

Keng tarqalgan xatolar

Mashqlar

Teglar: modul-03, pdp, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)