JAVA ƏSASLARIDərs 01
Java-ya giriş

// Java əsasları · Dərs 01

Java-ya giriş

Bu dərsdə Java-nın haradan gəldiyini görəcəksiniz. Yazdığınız kodun necə işləyən proqrama çevrildiyini öyrənəcəksiniz. Sonda ilk proqramınızı özünüz yazacaq, kompilyasiya edəcək və işə salacaqsınız.

BU DƏRSİN SONUNDA BACARACAQSINIZ

  • JDK, JRE və JVM-in bir-birindən fərqini izah etmək
  • Main.java faylı ilə ekrandakı “Hello, World!” arasında nə baş verdiyini danışmaq
  • JDK 25 və IntelliJ IDEA-nı quraşdırmaq
  • Proqramı terminalda kompilyasiya edib işə salmaq, xəta mesajlarını oxumaq
Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
“İşə sal” düyməsini basın: proqram kompilyasiya olunub işə düşəcək.
  1. Main.java
  2. →
  3. javac
  4. →
  5. Main.class
  6. →
  7. JVM
  8. →
  9. nəticə

Hissə 1 / 6

Java-nın tarixi

Java televizor pultu üçün başlanmış uğursuz bir layihədən yaranıb. Bəs necə oldu ki, sonra bankların, telekom şirkətlərinin və milyonlarla serverin dilinə çevrildi?

// 1.1

Televizor pultundan dünyanın serverlərinə

Zaman xəttində bir il seçin. Hekayəni ox düymələri ilə addım-addım da izləyə bilərsiniz.

// 1.2

James Gosling: Java-nın atası

James Gosling-in portreti
James Gosling Oak dilini Sun Microsystems-də yaratdı. Sonra bu dilin adını Java qoydular.

1995-ci ildə Sun yeni dili The Java Language: A White Paper sənədində təqdim etdi. Orada Java-nı on bir məşhur sifətlə (buzzwords) təsvir etdilər. Sifətin üzərinə klikləyin: o vaxt nə demək idi, bu gün nə deməkdir?

“Java , , , , , , , , , , dildir.”

Hissə 2 / 6

Java nədir?

Java həm dildir, həm də platformadır. Backend sistemlərdə ən çox işlənən texnologiyalardan biridir.

// 2.1

Java həm dil, həm də platformadır

Java ümumi təyinatlı, statik tipli, obyektyönümlü proqramlaşdırma dilidir. Siz kodu bytecode-a kompilyasiya edirsiniz. Bu bytecode-u isə Java Virtual Machine (JVM) icra edir.

Dil

Kod yazarkən əməl etdiyiniz qaydalar və sintaksis.

  • Statik tipli: hər dəyişənin bir tipi var və kompilyator onu proqram işə düşməmiş yoxlayır
  • Obyektyönümlü: kodunuz siniflərin və obyektlərin içində yaşayır
  • C üslubunda sintaksis: C, C# və ya JavaScript görmüsünüzsə, sintaksis sizə tanış gələcək

Platforma

Kodunuzu işə salan hər şey.

  • JVM bytecode-u istənilən əməliyyat sistemində icra edir
  • Standart kitabxana sizə minlərlə hazır sinif verir
  • Alətlər: javac, java, jshell və başqaları

JVM-də başqa dillər də işləyir: Kotlin, Scala, Groovy və Clojure. Platformanı bir dəfə öyrənsəniz, bu bilik hamısında işinizə yarayacaq.

// 2.2

Java bu gün harada işləyir

Siz hər gün Java ilə işləyən sistemlərə rast gəlirsiniz. Sadəcə onlar adətən gözə görünmür.

Backend və API-lər

Veb və mobil tətbiqlərin arxasında işləyən Spring Boot servisləri. Bu kursda siz məhz bunu öyrənəcəksiniz.

Bank və fintex

Ödənişlər, bankın əsas sistemləri, kart əməliyyatları və birja ticarəti.

Telekom

Mobil operatorlarda billinq, müştərilərlə iş və şəbəkənin idarəsi.

Android

Android tətbiqlərini Java və ya Kotlin dilində yazırlar. Kitabxanalar və alətlər isə Java-nındır.

Böyük verilənlər və stream emalı

Kafka, Hadoop, Spark və Elasticsearch: hamısı JVM-də işləyir.

Alətlər və oyunlar

IntelliJ IDEA, Jenkins və Minecraft: Java Edition.

// 2.3

Java JavaScript deyil

Adlar ona görə oxşayır ki, 1995-ci ildə Netscape ilə Sun marketinq razılaşması bağlamışdı. Dillərin özü isə tamam fərqlidir. Bir zarafat da var: Java JavaScript-ə nə qədər bənzəyirsə, xal da xalçaya o qədər bənzəyir.

JavaJavaScript
YaradıcısıSun Microsystems, 1995Netscape, 1995
TiplərStatik: int age = 25;Dinamik: let age = 25;
Harada işləyirBytecode-a kompilyasiyadan sonra JVM-dəBrauzerlərdə və Node.js-də
Əsas istifadəsiBackend sistemlər, Android, korporativ proqram təminatıVeb səhifələr və frontend; Node.js ilə backend də

Mini oyun: Java, yoxsa JavaScript?

// 2.4

Hər altı aydan bir yeni Java

2018-ci ildən bəri hər mart və sentyabrda yeni versiya çıxır. İki ildən bir çıxan versiya LTS olur, yəni uzunmüddətli dəstək (long-term support) alır. LTS versiyası illərlə yenilənir, ona görə şirkətlər production-da məhz onu işlədir. Versiyanın üzərinə klikləyin və nə gətirdiyinə baxın.

Funksional relizLTS relizKursumuzun versiyası

Hissə 3 / 6

Java necə işləyir

Yazdığınız mətn prosessorun başa düşdüyü instruksiyalara necə çevrilir?

// 3.1

Kodu işə salmağın iki yolu

Prosessor (CPU) yalnız maşın kodunu başa düşür. Ona görə hər dil mənbə kodunu bir yolla maşın koduna çatdırmalıdır.

Kompilyator

Proqramı işə düşməzdən əvvəl bütövlükdə maşın koduna çevirir.

mənbə kodu → kompilyator → maşın kodu → icra
Üstünlükləri
  • Sürətli icra
  • Çox xətanı proqram işə düşməmiş tapırsınız
Çatışmazlıqları
  • Hər əməliyyat sistemi və prosessor üçün yenidən kompilyasiya etməlisiniz

Nümunələr: C, C++, Go, Rust

İnterpretator

Proqramı oxuyur və işlədikcə addım-addım icra edir.

mənbə kodu → interpretator (icra edir)
Üstünlükləri
  • İnterpretatoru olan hər yerdə işləyir
  • Dəyişikliyi dərhal yoxlaya bilirsiniz
Çatışmazlıqları
  • Daha yavaş icra
  • Xətalar ancaq proqram işləyəndə üzə çıxır

Nümunələr: Python, Ruby, PHP

Java ikisini də edir. Əvvəlcə javac kodunuzu bytecode-a kompilyasiya edir. Sonra JVM bu bytecode-u interpretasiya edir. Proqram işlədikcə tez-tez işləyən hissələri də maşın koduna kompilyasiya edir. Növbəti bölmədə bunu addım-addım görəcəksiniz.

// 3.2

Main.java faylından “Hello, World!” nəticəsinə

Yol beş mərhələdən keçir. Mərhələnin üzərinə klikləyin və ya “Növbəti” düyməsini basın.

// 3.3

Bir dəfə yaz, hər yerdə işlət

Kodu bir dəfə kompilyasiya edirsiniz. Alınan Main.class faylı JVM olan istənilən əməliyyat sistemində işləyir. Aşağıda sistemi dəyişin və nəyin dəyişdiyinə baxın.

JVM platformadan asılıdır. Bytecode-unuz isə yox.

Oracle, Eclipse Adoptium və başqa istehsalçılar hər sistem və prosessor üçün ayrıca JVM hazırlayır. Proqramınızın isə hansı JVM-də işlədiyini bilməsinə ehtiyac yoxdur.

Main.classhər yerdə eyni
Windows x64 üçün JVMhər ƏS üçün ayrı
x86-64 maşın koduhər CPU üçün ayrı
Hello, World!

// 3.4

JDK, JRE və JVM

Bu üç adı tez-tez eşidəcəksiniz. Onlar matryoşka kimi bir-birinin içində yerləşir. Təbəqənin üzərinə klikləyin.

JDKJava Development Kit
JREJava Runtime Environment
JVMJava Virtual Machine
sinif yükləyicisi (class loader)yaddaşinterpretatorJITzibil toplayıcı (garbage collector)

+ standart siniflər kitabxanası

java.langjava.utiljava.timejava.iojava.net

+ proqramlaşdırma alətləri

javacjshelljarjavadocjavapjdb

// 3.5

JVM-in içində

JVM-in üç əsas hissəsi var. Biri siniflərinizi yükləyir, biri proqram işləyərkən verilənləri saxlayır, üçüncüsü isə kodu icra edir. İstənilən qutunun üzərinə klikləyin.

Main.class bura daxil olur

Sinif yükləyici (class loader) altsistemi .class fayllarını yükləyir

Yükləmə
Əlaqələndirmə
İnisializasiya

İcra zamanı verilənlər sahələri ■ bütün thread-lər üçün ortaq · ■ hər thread üçün ayrıca

İcra mexanizmi bytecode-u icra edir

// 3.6

Java işlədikcə niyə sürətlənir

JVM hər metodun neçə dəfə işlədiyini sayır. Metod “isti” olanda JIT kompilyatoru onu maşın koduna çevirir. Aşağıdakı metodu çağırın və onun pillə-pillə necə qalxdığına baxın.

Calculator.java
static int square(int x) {
    return x * x;
}
Çağırışların sayı
0
interpretasiya olunur
0C1: 10C2: 30
İnterpretator
100
C1 kompilyatoru
30
C2 kompilyatoru
8

Zolaqlar bir çağırışın vaxtını şərti vahidlərlə göstərir. Əsl JVM-də bu hədlər minlərlə çağırışdır və JVM öz ölçmələrinə də baxır.

// 3.7

JDK-nın içindəki alətlər

İlk üçünü elə bu gün işlədəcəksiniz. Qalanları kursun sonrakı dərslərində lazım olacaq.

AlətNə edirNümunə
javac.java mənbə kodunu .class bytecode-una kompilyasiya edirjavac Main.java
javaJVM-i başladır və proqramı işə salırjava Main
jshellJava kodunu sətir-sətir sınamaq üçün interaktiv konsoljshell
jarÇoxlu .class faylını bir .jar arxivinə yığırjar cf app.jar *.class
javadocKoddakı şərhlərdən HTML sənədləri yaradırjavadoc -d docs Main.java
javap.class faylının içindəki bytecode-u göstərirjavap -c Main
jdbKomanda sətri üçün debugger. IntelliJ-in debugger-i daha rahatdır.jdb Main

Hissə 4 / 6

Kompüterinizi hazırlayın

Bu gün iki şey quraşdıracaqsınız: JDK və IDE.

// 4.1

Sizə nə lazımdır

JDK 25 LTS

Kompilyator, JVM və alətlər.

Biz Eclipse Temurin 25 ilə işləyirik. Bu, pulsuz və açıq mənbəli JDK-dır, onu adoptium.net saytından endirirsiniz.

Başqa JDK-lar da eyni cür işləyir, çünki hamısı OpenJDK üzərində qurulub. Məsələn, Oracle JDK, Amazon Corretto, Azul Zulu və Microsoft Build of OpenJDK.

IntelliJ IDEA

Java komandalarının çoxu bu IDE ilə işləyir. Redaktor, debugger və build alətləri bir pəncərədədir.

Onu jetbrains.com/idea saytından endirin. Bu kurs üçün pulsuz versiya bəs edir. Tələbəsinizsə, pulsuz təhsil lisenziyası üçün də müraciət edə bilərsiniz.

Başqa seçimlər də var: Java əlavələri ilə VS Code və ya Eclipse.

Köhnə dərsliklərdə “Java 8 quraşdırın” və ya “JRE quraşdırın” görə bilərsiniz. Buna fikir verməyin. Siz JDK quraşdırın, versiyası 25 olsun.

// 4.2

JDK-nı quraşdırın və yoxlayın

  1. adoptium.net saytını açın, Windows, x64, JDK 25 seçin və .msi quraşdırıcısını endirin.
  2. Quraşdırıcını işə salın. “Custom Setup” ekranında Add to PATH və Set JAVA_HOME variable seçimlərini aktiv edin.
  3. Yeni PowerShell və ya Command Prompt pəncərəsi açın və hər iki aləti yoxlayın:
    java -version
    javac -version
Gözlənilən nəticə (versiya fərqli ola bilər)
$ java -version
openjdk version "25.0.1" 2025-10-21 LTS
OpenJDK Runtime Environment Temurin-25.0.1+8 (build 25.0.1+8-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.1+8 (build 25.0.1+8-LTS, mixed mode, sharing)
$ javac -version
javac 25.0.1
“java is not recognized” və ya “command not found: java”

Terminal JDK-nı tapa bilmir. Əvvəlcə terminalı bağlayıb yenisini açın. Yenə alınmırsa, deməli JDK-nın bin qovluğu PATH-da deyil. Quraşdırıcını yenidən işə salın və PATH seçimini aktiv edin. Ya da JAVA_HOME və PATH dəyişənlərini qurmaq üçün müəllimdən kömək istəyin.

java işləyir, amma javac tapılmır

Deməli, kompüterinizdə kompilyatoru olmayan runtime var. Ya da PATH-da köhnə Java birinci gəlir. JRE yox, JDK quraşdırın və yeni terminal açın.

java -version 1.8, 11 və ya 17 göstərir

Kompüterdə köhnə Java var və PATH-da o birinci gəlir. JAVA_HOME dəyişənini JDK 25 qovluğuna yönəldin. Sonra Windows-da %JAVA_HOME%\bin, macOS və Linux-da $JAVA_HOME/bin yolunu PATH-ın əvvəlinə qoyun.

// 4.3

İlk IntelliJ layihəniz

  1. IntelliJ IDEA-nı açın və New Project düyməsini basın.
  2. Java seçin və layihənin adını lesson01 qoyun. Build system olaraq IntelliJ seçin. Kursun sonrakı hissələrində Maven-ə keçəcəyik.
  3. JDK xanasında 25-i seçin. Siyahıda yoxdursa, Download JDK… basın: versiya 25, istehsalçı (vendor) Eclipse Temurin.
  4. Add sample code seçimini aktiv edin və Create düyməsini basın. IntelliJ sizin üçün src/Main.java faylını yaradacaq.
  5. main metodunun yanındakı yaşıl ▶ işarəsini basın və proqram işə düşəcək. Nəticəni aşağıda, Run pəncərəsində görəcəksiniz.

Vaxta qənaət edən qısayollar

  • psvm və ya main + Tabmain metodunu sizin üçün yazır
  • sout + TabSystem.out.println(); yazır
  • Shift + F10 · Mac: ⌃ + Rproqramı yenidən işə salır
  • Alt + Enter · Mac: ⌥ + Enterqırmızı xətalı kod üçün hazır düzəlişlər təklif edir

Hissə 5 / 6

İlk Java proqramınız

Proqramı yazacaq, kompilyasiya edib işə salacaq, sonra da sındıracaqsınız. Sonda hər sətrin nə etdiyini biləcəksiniz.

// 5.1

Hello World-un anatomiyası

Cəmi beş sətirdir, amma hər sözün öz işi var. İşarələnmiş hissənin üzərinə klikləyin və ya siçanı aparın.

Main.java
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

static sözündən başlayın. Yeni başlayanlar ən çox elə onu soruşur.

// 5.2

Terminalda kompilyasiya və icra

IntelliJ-də Run düyməsi bu addımları sizin yerinizə edir. Amma içəridə nə baş verdiyini görmək üçün onları bir dəfə əl ilə edin. Aşağıdakı məşq terminalında əmr yazın və ya təkliflərdən birinə klikləyin.

~/lesson01 · məşq terminalı

Tapşırıqlarınız

    BUNLARI SINAYIN

    java Main.class yox, java Main yazın. JVM-ə faylın adını yox, sinfin adını verirsiniz.

    // 5.3

    Qəsdən sındırın

    Xəta etmək normaldır, onu oxumaq isə bacarıqdır. Bir səhv seçin və javac-ın nə çap etdiyinə baxın. Sonra onu necə düzəltməyi öyrənin.

    Main.java
    
              
    
            

    // 5.4

    Java 25 ilk proqramı qısaldır

    Java 25-də kompakt mənbə faylları (compact source files) gəldi. Kiçik proqramda artıq sinfi, static sözünü və String[] args hissəsini yazmaya bilərsiniz.

    Main.java
    
            
    
          

    // 5.5

    JShell: Java-nı faylsız sınayın

    Terminalda jshell yazın, qarşınızda interaktiv Java konsolu açılacaq. Tez bir şey yoxlamaq üçün idealdır. Düyməni basmamış hər sətrin nə çap edəcəyini təxmin edin.

    JShell-dən /exit ilə çıxırsınız. /vars dəyişənlərinizi göstərir, /help isə qalan hər şeyi.

    // 5.6

    Qaydalar və adlandırma razılaşmaları

    Solda qaydalar var: birini pozsanız, kod kompilyasiya olunmayacaq. Sağda isə razılaşmalar (conventions) var. Onları pozsanız, kod kompilyasiya olunacaq, amma hər Java proqramçısı bunu dərhal görəcək.

    Qaydalar

    • Java böyük və kiçik hərfi fərqləndirirMain və main fərqli adlardır. System və system da.
    • Fayl adı = public sinfin adıpublic class Main yalnız Main.java faylında ola bilər.
    • Əmrlər ; ilə bitirCümlənin sonundakı nöqtə kimi.
    • Bloklar { } ilə yazılırSətrin əvvəlindəki boşluqlar insan üçündür. Kompilyator isə ancaq fiqurlu mötərizələrə baxır.

    Adlandırma razılaşmaları

    NəÜslubNümunə
    SinifPascalCaseBankAccount
    MetodcamelCasecalculateTotal()
    DəyişəncamelCasefirstName
    SabitUPPER_SNAKE_CASEMAX_SIZE
    Paketkiçik hərflər, nöqtələraz.example.shop

    ŞƏRHLƏR

    // birsətirlik şərh
    /* bir neçə sətirdən
       ibarət şərh */
    /** Javadoc: sinfi və ya metodu təsvir edir */

    Hissə 6 / 6

    Yekun

    Burada dərsin əsas fikirlərini, özünüzü yoxlamaq üçün testi və ev tapşırığını tapacaqsınız.

    // 6.1

    Əsas nəticələr

    1. Java-nı 1991–1995-ci illərdə Sun Microsystems-də James Gosling-in komandası yaradıb. Bu gün Java Oracle-ındır, amma onu OpenJDK layihəsində açıq şəkildə inkişaf etdirirlər.

    2. javac .java fayllarını bytecode-a (.class) kompilyasiya edir. Bu bytecode-u isə JVM icra edir. Java hər yerdə məhz buna görə işləyir.

    3. JDK = JRE + proqramlaşdırma alətləri. JRE = JVM + standart kitabxana. Proqramçı kimi sizə JDK lazımdır.

    4. JIT kompilyatoru isti kodu sürətləndirir. Zibil toplayıcı (garbage collector) isə yaddaşı sizin yerinizə boşaldır.

    5. Hər altı aydan bir yeni Java çıxır. Java 25 hazırkı LTS versiyasıdır, biz də onunla işləyirik.

    6. Kompilyasiya xətası faylı, sətri və problemi göstərir. Xətaları yuxarıdan aşağı oxuyun.

    // 6.2

    Özünüzü yoxlayın

    Cəmi on sual var. Cavabı seçən kimi düzgününü görəcəksiniz.

    Nəticə
    0 / 10
    Yuxarıdakı suallara cavab verin.

    // 6.3

    Ev tapşırığı

    Bitirdiyiniz tapşırığı işarələyin. İşarələr yalnız bu brauzerdə qalır.

    Hazırdır: 0 / 6

    // 6.4

    Suallar?

    Növbəti dərs: Primitiv verilənlər tipləri və dəyişənlər. Java ədədləri, mətni və true/false dəyərlərini necə saxlayır? 7 / 2 niyə 3 verir?

    Dərs 02: ön baxış
    int age = 25;
    double price = 9.99;
    boolean isJavaFun = true;
    char grade = 'A';
    String name = "Java";