1-bo‘lim

Java bilan tanishuv

Java nima uchun yaratilgan, uni kim yozgan, nomi qayerdan kelgan, JVM qanday ishlaydi va birinchi dastur.

🕑 11 daqiqa o‘qish 📄 1 095 so‘z 👁 5 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Birinchi dastur
  2. Yangi qisqa shakl
  3. Java ni kim yaratgan?
  4. Qisqacha tarix
  5. JVM - Java ning asosiy g'oyasi
  6. Java qayerda ishlatiladi
  7. Tilning uchta xususiyati
  8. 1. Turlar qat'iy tekshiriladi
  9. 2. Xotira o'zi tozalanadi
  10. 3. Standart kutubxona juda katta
  11. Xulosa

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 #

Java
public class Salom {
    public static void main(String[] args) {
        System.out.println("Salom, dunyo!");
    }
}
Natija
Salom, dunyo!

Boshida bu uzun tuyuladi. Har bir qismning ma'nosi bor:

QismMa'nosi
public class SalomSinf e'loni; fayl nomi Salom.java bo'lishi shart
public static void mainDastur shu metoddan boshlanadi
String[] argsBuyruq qatoridan kelgan argumentlar
System.out.printlnEkranga chiqarish va yangi qatorga o'tish
Fayl nomi sinf nomiga mos bo'lishi shart

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:

Java
void main() {
    IO.println("Salom, dunyo!");
}
Natija
Salom, dunyo!

Sinf ham, public static ham, System.out ham kerak emas - kompilyator ularni o'zi qo'shadi.

Bu darslikda uzun shakl ishlatiladi

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? #

Java

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.

"Java" nomi qayerdan kelgan?

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 #

Pristavkadan korporativ tizimlargacha 1991 Oak pristavkalar uchun 1995 Java 1.0 nom o'zgardi 2004 Java 5 generiklar 2010 Oracle Sun'ni sotib oldi 2014 Java 8 lambda, Stream 2021 Java 17 LTS 2025 Java 25 LTS Java televizor pristavkalari uchun o'ylab topilgan va o'sha bozorda muvaffaqiyatsiz bo'lgan. Uni qutqargan narsa - internet: "hamma joyda ishlaydi" va'dasi aynan o'sha paytda kerak bo'lib qoldi. 2018-yildan beri yangi versiya har olti oyda, LTS esa har uch yilda chiqadi.
Muvaffaqiyatsiz loyiha tasodifan o'z vaqtini topdi
VersiyaYilNima qo'shildi
Java 1.01996Tilning birinchi rasmiy versiyasi
Java 52004Generiklar, enum, for-each, avtoqutilash
Java 82014Lambda, Stream API, Optional - eng katta o'zgarish
Java 112018Birinchi zamonaviy LTS
Java 172021Yopiq sinflar, record barqarorlashdi
Java 212023Namuna moslashtirish, virtual oqimlar
Java 252025Ixcham manba fayllari, hozirgi LTS
LTS nima?

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.

Bir marta kompilyatsiya, hamma joyda ishlash Salom.java siz yozgan matn javac Salom.class bayt-kod java JVM bayt-kodni protsessor buyruqlariga o'giradi Windows o'z JVM'i Linux o'z JVM'i macOS o'z JVM'i Bitta .class fayli uch tizimda ham o'zgarishsiz ishlaydi - chunki har birida o'z JVM'i bor. C++ da esa har bir tizim uchun alohida kompilyatsiya qilish kerak. Shiori: "Write Once, Run Anywhere" - bir marta yoz, hamma joyda ishlat.
Bayt-kod hech qaysi protsessorga bog'liq emas

Buni o'zingiz ko'rishingiz mumkin:

Java
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));
    }
}
Natija
Java versiyasi kamida 21: true
Bayt-kod JVM ustida ishlayapti: true
Bu ham narxga ega

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 #

SohaNima bilan
Korporativ tizimlarSpring Boot, Jakarta EE
Android ilovalariAndroid SDK (Kotlin bilan birga)
Banklar va moliyaIshonchlilik va uzoq qo'llab-quvvatlash uchun
Katta ma'lumotlarHadoop, Spark, Kafka
Veb serverlarTomcat, Jetty
Ilmiy va o'lchov tizimlariUzoq muddatli barqarorlik muhim bo'lganda
Java va JavaScript - butunlay boshqa tillar

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 #

Java
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));
    }
}
Natija
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 #

Java
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"));
    }
}
Natija
Andijon, Namangan, Samarqand
Eng uzun nom: Samarqand

Saralash, birlashtirish va eng uzunini topish - hammasi tayyor vositalar bilan.

Bu darslikdagi barcha misollar sinab ko'rilgan

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.

Amaliy topshiriq
  1. Java va JVM farqini o'z so'zingiz bilan yozing.
  2. Tilning dastlabki nomi nima bo'lgan va nega o'zgargan?
  3. "Java" nomi qayerdan kelganini ayting.
  4. Java qaysi bozor uchun yaratilgan va nega u yerda muvaffaqiyat qozonmagan?
  5. Bayt-kod nima va u nega kerakligini tushuntiring.
  6. LTS versiyalarni sanang.
  7. Java 8 nima olib kelganini va nega u eng katta o'zgarish ekanini yozing.
  8. JVM ning ikkita kamchiligini ayting.
  9. Java va JavaScript o'rtasida qanday aloqa borligini tushuntiring.
  10. public class nomi 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 class nomiga 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.

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.