1-modul · 6-dars: String — 1-qism
Daraja: Boshlang'ich
String — 1-qism. Java Core bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi String — 1-qism tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Belgilar ketma-ketligini ifodalovchi obyekt (`char` lar to'plami). `java.lang.String` classi.
2 xil: literal orqali (`String s = "hi";`) va `new` orqali (`new String("hi")`).
## Intervyuga tayyorgarlik ### Java-da String nima? Belgilar ketma-ketligini ifodalovchi obyekt (`char` lar to'plami). `java.lang.String` classi.
### String-ni nechi xil usulda yaratishimiz mumkin? 2 xil: literal orqali (`String s = "hi";`) va `new` orqali (`new String("hi")`).
### Java-da String nima uchun immutable? Xavfsizlik, String pool orqali xotira tejash, thread-safety va hashcode caching uchun. Yaratilgach qiymati o'zgarmaydi.
### Java-da String classning superclassi nima? `java.lang.Object`.
## 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
String text = "Java";
String upper = text.toUpperCase(java.util.Locale.ROOT);
System.out.println(text); // Java
System.out.println(upper); // JAVA
Keng tarqalgan xatolar
- String ni `==` bilan solishtirish: u mazmunni emas, havolani tekshiradi - `equals()` ishlatiladi.
- Tsikl ichida `+` bilan String yig'ish: har qadamda yangi obyekt yaratiladi, `StringBuilder` kerak.
Mashqlar
- Ikki bir xil matnni `==` va `equals()` bilan solishtirib, natijalar farqini tushuntiring.
- 10 000 marta `+` bilan va `StringBuilder` bilan matn yig'ib, ketgan vaqtni o'lchang.
Teglar: modul-01, pdp, nazariya