1-modul · 1-dars: Java bilan tanishuv
Daraja: Boshlang'ich
Java bilan tanishuv. Java Core bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Java bilan tanishuv tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Kompyuterga muayyan vazifani bajarishni buyuruvchi, belgilangan tartibda yozilgan buyruqlar (instruksiyalar) to'plami. Dasturchi yozadi, kompyuter bajaradi.
Dasturlash mantiqiy fikrlash va murakkab muammoni kichik bo'laklarga bo'lib yechishni o'rgatadi. Bugun deyarli barcha sohalar avtomatlashmoqda, shuning uchun bu universal ko'nikma.
## Intervyuga tayyorgarlik ### Computer program nima? Kompyuterga muayyan vazifani bajarishni buyuruvchi, belgilangan tartibda yozilgan buyruqlar (instruksiyalar) to'plami. Dasturchi yozadi, kompyuter bajaradi.
### Nima uchun hamma dasturlashni o'rganishi kerak? Dasturlash mantiqiy fikrlash va murakkab muammoni kichik bo'laklarga bo'lib yechishni o'rgatadi. Bugun deyarli barcha sohalar avtomatlashmoqda, shuning uchun bu universal ko'nikma.
### Java birinchi nomi nima edi? `Oak` (eman daraxti). Keyinchalik nom band bo'lgani uchun `Java` ga o'zgartirilgan.
### Java nechta feature bor? Sun kompaniyasining oq qog'ozida (buzzwords) 13 ta asosiy xususiyat sanaladi: Simple, Object-Oriented, Platform Independent, Secured, Robust, Architecture-neutral, Portable, High Performance, Multithreaded, Distributed, Dynamic, Interpreted, Compiled.
### Compiler nima? Yuqori darajali (source) kodni bir martada to'liq mashina/bytecode ga aylantiruvchi dastur. Java-da `javac` `.java` ni `.class` bytecode ga kompilyatsiya qiladi.
### Interpreter nima? Kodni satrma-satr (JVM esa bytecode ni komanda-komanda) o'qib, darhol bajaruvchi dastur.
### JDK nima? Java Development Kit — Java dasturini yozish, kompilyatsiya va ishga tushirish uchun to'liq to'plam. Ichida JRE + ishlab chiqish vositalari (javac, jar, javadoc...) bor.
### JLS nima? Java Language Specification — Java tilining rasmiy qoidalari (sintaksis va semantika) yozilgan spetsifikatsiya hujjati.
### JRE nima? Java Runtime Environment — Java dasturini ishga tushirish uchun kerakli muhit: JVM + standart kutubxonalar. Kod yozish/kompilyatsiya vositalari yo'q.
### JVM nima? Java Virtual Machine — bytecode ni bajaruvchi virtual mashina. «Write once, run anywhere» tamoyilini ta'minlaydi; har bir OS uchun o'z JVM implementatsiyasi bor.
### Devtools nima? JDK tarkibidagi ishlab chiqish vositalari: `javac` (compiler), `java` (launcher), `jar`, `javadoc`, `jdb` (debugger), `jshell` va h.k.
### JDK components? JDK = JRE + Development tools. JRE = JVM + Class Libraries. Ya'ni: JVM, standart kutubxonalar, javac, java, jar, javadoc, debugger va boshqalar.
### Bytecode nima? `javac` kompilyatsiya qilgandan keyin hosil bo'ladigan, platformadan mustaqil oraliq kod (`.class` fayl). JVM uni o'qib bajaradi.
## 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
public class Main {
public static void main(String[] args) {
System.out.println("Salom, Java!");
}
}
// javac Main.java
// java Main
Keng tarqalgan xatolar
- JDK, JRE va JVM ni bir narsa deb o'ylash: javac faqat JDK da bor, shuning uchun JRE bilan kompilyatsiya qilib bo'lmaydi.
- Java 'kompilyatsiya qilinadi' yoki 'interpretatsiya qilinadi' deb bittasini tanlash: aslida ikkalasi ham - javac bayt-kod yasaydi, JVM uni bajaradi.
Mashqlar
- Bitta .java faylni javac bilan kompilyatsiya qilib, hosil bo'lgan .class ni java bilan ishga tushiring.
- `java -version` va `javac -version` natijasini solishtiring; farq bo'lsa sababini toping.
Teglar: pdp, modul-01, nazariya