1-bo‘lim
Java bilan tanishuv
Java nima uchun yaratilgan, uni kim yozgan, nomi qayerdan kelgan, JVM qanday ishlaydi va birinchi dastur.
Ushbu bo‘lim mundarijasi
Java - dunyodagi eng keng tarqalgan dasturlash tillaridan biri. Banklar, Android ilovalari, yirik korxona tizimlari va minglab veb xizmatlar unda yozilgan.
Uning asosiy va'dasi bitta jumlada aytilgan: "bir marta yoz, hamma joyda ishlat".
Birinchi dastur #
public class Salom {
public static void main(String[] args) {
System.out.println("Salom, dunyo!");
}
}
Salom, dunyo!
Boshida bu uzun tuyuladi. Har bir qismning ma'nosi bor:
| Qism | Ma'nosi |
|---|---|
public class Salom | Sinf e'loni; fayl nomi Salom.java bo'lishi shart |
public static void main | Dastur shu metoddan boshlanadi |
String[] args | Buyruq qatoridan kelgan argumentlar |
System.out.println | Ekranga chiqarish va yangi qatorga o'tish |
Bu Java ning qat'iy qoidasi: public class Salom bo'lsa, fayl
Salom.java deb nomlanishi kerak. Bosh harfigacha mos bo'lsin.
Boshqa tillarda bunday talab yo'q. Java'da esa kompilyator sinfni fayl nomi bo'yicha topadi, shuning uchun qoida buzilsa darhol xato beradi.
Yangi qisqa shakl #
Java 25 dan boshlab eng oddiy dastur ancha qisqa yoziladi:
void main() {
IO.println("Salom, dunyo!");
}
Salom, dunyo!
Sinf ham, public static ham, System.out ham kerak emas -
kompilyator ularni o'zi qo'shadi.
Qisqa shakl faqat Java 25 va undan yuqorisida ishlaydi, u 2025-yil sentyabrda chiqqan.
Amalda esa dunyodagi Java kodining deyarli hammasi - kitoblar, internetdagi misollar, ish joyingizdagi loyihalar - uzun shaklda yozilgan. Android ham hali eski versiyalarda.
Shuning uchun bu darslikda klassik shakl asosiy bo'ladi. Undan tashqari, bu darslikdagi barcha kod Java 21 LTS da ishlashi tekshirilgan - ya'ni sizda 25 bo'lmasa ham hammasi ishlaydi.
Java ni kim yaratgan? #
James Gosling (1955-)
Java ning otasi. Kanadalik dasturchi. 1991-yilda Sun Microsystems'da "Green" loyihasini boshladi - maqsad televizor pristavkalari uchun til yaratish edi.
Bozor bunday qurilmalarga hali tayyor emas edi va loyiha deyarli yopilib qolgandi. Lekin o'sha paytda internet o'sa boshladi va "har qanday kompyuterda ishlaydigan dastur" g'oyasi aynan veb uchun kerak bo'lib qoldi.
Til dastlab Oak ("eman") deb atalgan - Gosling ish xonasi derazasidan ko'rinadigan eman daraxti sharafiga.
1995-yilda ma'lum bo'ldiki, "Oak" nomi allaqachon boshqa kompaniyaga tegishli. Yangi nom izlashga to'g'ri keldi.
Jamoa Java ni tanladi - bu Indoneziyadagi orol nomi va o'sha yerda yetishtiriladigan mashhur qahva navi. Rivoyatga ko'ra, nom jamoaning kunlik qahvasidan ilhomlangan.
Shu sababli Java'ning belgisi - bug'lanayotgan qahva piyolasi,
fayl kengaytmalari esa .java va .class.
Qisqacha tarix #
| Versiya | Yil | Nima qo'shildi |
|---|---|---|
| Java 1.0 | 1996 | Tilning birinchi rasmiy versiyasi |
| Java 5 | 2004 | Generiklar, enum, for-each, avtoqutilash |
| Java 8 | 2014 | Lambda, Stream API, Optional - eng katta o'zgarish |
| Java 11 | 2018 | Birinchi zamonaviy LTS |
| Java 17 | 2021 | Yopiq sinflar, record barqarorlashdi |
| Java 21 | 2023 | Namuna moslashtirish, virtual oqimlar |
| Java 25 | 2025 | Ixcham manba fayllari, hozirgi LTS |
LTS - Long-Term Support, ya'ni uzoq muddat qo'llab-quvvatlanadigan versiya. Ular uchun xavfsizlik yangilanishlari yillar davomida chiqariladi.
Amalda korxonalar faqat LTS versiyalarda ishlaydi: 11, 17, 21, 25. Oraliqdagi versiyalar (18, 19, 22...) olti oydan keyin qo'llab-quvvatlanmay qoladi.
Yangi loyiha boshlayotgan bo'lsangiz - Java 21 yoki 25 ni tanlang.
JVM - Java ning asosiy g'oyasi #
Java kodi to'g'ridan-to'g'ri protsessorga tushunarli buyruqlarga aylanmaydi. Oraliq bosqich bor.
Buni o'zingiz ko'rishingiz mumkin:
public class Muhit {
public static void main(String[] args) {
System.out.println("Java versiyasi kamida 21: "
+ (Runtime.version().feature() >= 21));
System.out.println("Bayt-kod JVM ustida ishlayapti: "
+ (System.getProperty("java.vm.name") != null));
}
}
Java versiyasi kamida 21: true
Bayt-kod JVM ustida ishlayapti: true
JVM qulaylik beradi, lekin bepul emas:
- Dastur ishga tushishi uchun JVM yuklanishi kerak - bu bir necha yuz millisekund;
- Xotira sarfi C yoki Rust dasturidan ko'proq;
- Dastur birinchi soniyalarda sekinroq ishlaydi, keyin JIT kompilyatori eng ko'p chaqiriladigan qismlarni protsessor buyruqlariga o'giradi va tezlik keskin oshadi.
Shuning uchun Java uzoq ishlaydigan server dasturlari uchun juda mos, tez ishga tushishi kerak bo'lgan kichik yordamchi dasturlar uchun esa unchalik emas.
Java qayerda ishlatiladi #
| Soha | Nima bilan |
|---|---|
| Korporativ tizimlar | Spring Boot, Jakarta EE |
| Android ilovalari | Android SDK (Kotlin bilan birga) |
| Banklar va moliya | Ishonchlilik va uzoq qo'llab-quvvatlash uchun |
| Katta ma'lumotlar | Hadoop, Spark, Kafka |
| Veb serverlar | Tomcat, Jetty |
| Ilmiy va o'lchov tizimlari | Uzoq muddatli barqarorlik muhim bo'lganda |
Nomlari o'xshash, lekin ular orasida hech qanday texnik aloqa yo'q.
JavaScript 1995-yilda Netscape brauzerida paydo bo'lgan va dastlab
LiveScript deb atalgan. O'sha paytda Java juda mashhur edi, shuning
uchun marketing maqsadida nomi o'zgartirildi.
Mashhur taqqoslash: Java va JavaScript - avtomobil va gilam kabi. "Car" va "carpet" - so'zlar o'xshash, narsalar boshqa.
Tilning uchta xususiyati #
1. Turlar qat'iy tekshiriladi #
public class Turlar {
public static void main(String[] args) {
int yosh = 25;
String ism = "Husanboy";
System.out.println(ism + " - " + yosh + " yosh");
System.out.println("Ikki yildan keyin: " + (yosh + 2));
}
}
Husanboy - 25 yosh
Ikki yildan keyin: 27
yosh ga satr berishga urinsangiz, dastur kompilyatsiya
qilinmaydi - xato ishga tushishdan oldin topiladi.
2. Xotira o'zi tozalanadi #
Ajratilgan xotirani qaytarish kerak emas - buni axlat yig'uvchi (garbage collector) bajaradi. C va C++ dagi eng ko'p uchraydigan xatolar sinfi Java'da umuman mavjud emas.
3. Standart kutubxona juda katta #
import java.util.*;
public class Kutubxona {
public static void main(String[] args) {
List<String> shaharlar = new ArrayList<>(
List.of("Namangan", "Andijon", "Samarqand"));
Collections.sort(shaharlar);
System.out.println(String.join(", ", shaharlar));
System.out.println("Eng uzun nom: "
+ shaharlar.stream()
.max(Comparator.comparingInt(String::length))
.orElse("yo'q"));
}
}
Andijon, Namangan, Samarqand
Eng uzun nom: Samarqand
Saralash, birlashtirish va eng uzunini topish - hammasi tayyor vositalar bilan.
Har bir java bloki haqiqatan kompilyatsiya qilingan va ishga
tushirilgan. Ostidagi output bloki - dasturning o'zi bergan natija,
qo'lda yozilgan emas.
Bundan tashqari, kod --release 21 bayrog'i bilan qurilgan. Bu
shuni anglatadiki, misollar Java 21 va undan yuqori har qanday
versiyada ishlaydi.
Yagona istisno - yuqoridagi qisqa shakl misoli, u Java 25 talab qiladi va shunday belgilangan.
- Java va JVM farqini o'z so'zingiz bilan yozing.
- Tilning dastlabki nomi nima bo'lgan va nega o'zgargan?
- "Java" nomi qayerdan kelganini ayting.
- Java qaysi bozor uchun yaratilgan va nega u yerda muvaffaqiyat qozonmagan?
- Bayt-kod nima va u nega kerakligini tushuntiring.
- LTS versiyalarni sanang.
- Java 8 nima olib kelganini va nega u eng katta o'zgarish ekanini yozing.
- JVM ning ikkita kamchiligini ayting.
- Java va JavaScript o'rtasida qanday aloqa borligini tushuntiring.
public classnomi va fayl nomi orasidagi qoidani yodingizdan yozing.
Xulosa #
- Java - qat'iy turlangan, keng tarqalgan va uzoq muddat qo'llab-quvvatlanadigan til.
- Uni James Gosling boshchiligidagi jamoa 1991-yilda Oak nomi bilan boshlagan; 1995-yilda Java deb qayta atalgan.
- Nomi - Indoneziyadagi orol va qahva navi sharafiga; belgisi - qahva piyolasi.
- Kod avval bayt-kodga (
.class), keyin JVM orqali protsessor buyruqlariga aylanadi. - Shu tufayli bitta fayl hamma tizimda ishlaydi - "write once, run anywhere".
- Fayl nomi
public classnomiga aynan mos bo'lishi shart. - Amalda faqat LTS versiyalar ishlatiladi: 11, 17, 21, 25.
- Java va JavaScript - butunlay boshqa tillar.
Keyingi bo'limda JDK ni o'rnatib, birinchi loyihani yaratamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.