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?
// Java əsasları · Dərs 01
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
Main.java faylı ilə ekrandakı “Hello, World!” arasında nə baş verdiyini danışmaqpublic class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Hissə 1 / 6
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
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
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 həm dildir, həm də platformadır. Backend sistemlərdə ən çox işlənən texnologiyalardan biridir.
// 2.1
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.
Kod yazarkən əməl etdiyiniz qaydalar və sintaksis.
Kodunuzu işə salan hər şey.
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
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.
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.
Ödənişlər, bankın əsas sistemləri, kart əməliyyatları və birja ticarəti.
Mobil operatorlarda billinq, müştərilərlə iş və şəbəkənin idarəsi.
Android tətbiqlərini Java və ya Kotlin dilində yazırlar. Kitabxanalar və alətlər isə Java-nındır.
Kafka, Hadoop, Spark və Elasticsearch: hamısı JVM-də işləyir.
IntelliJ IDEA, Jenkins və Minecraft: Java Edition.
// 2.3
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.
| Java | JavaScript | |
|---|---|---|
| Yaradıcısı | Sun Microsystems, 1995 | Netscape, 1995 |
| Tiplər | Statik: int age = 25; | Dinamik: let age = 25; |
| Harada işləyir | Bytecode-a kompilyasiyadan sonra JVM-də | Brauzerlərdə və Node.js-də |
| Əsas istifadəsi | Backend sistemlər, Android, korporativ proqram təminatı | Veb səhifələr və frontend; Node.js ilə backend də |
// 2.4
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.
Hissə 3 / 6
Yazdığınız mətn prosessorun başa düşdüyü instruksiyalara necə çevrilir?
// 3.1
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.
Proqramı işə düşməzdən əvvəl bütövlükdə maşın koduna çevirir.
Nümunələr: C, C++, Go, Rust
Proqramı oxuyur və işlədikcə addım-addım icra edir.
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
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.
// 3.4
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.
+ standart siniflər kitabxanası
+ proqramlaşdırma alətləri
// 3.5
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.
// 3.6
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.
static int square(int x) {
return x * x;
}
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
İlk üçünü elə bu gün işlədəcəksiniz. Qalanları kursun sonrakı dərslərində lazım olacaq.
| Alət | Nə edir | Nümunə |
|---|---|---|
javac | .java mənbə kodunu .class bytecode-una kompilyasiya edir | javac Main.java |
java | JVM-i başladır və proqramı işə salır | java Main |
jshell | Java kodunu sətir-sətir sınamaq üçün interaktiv konsol | jshell |
jar | Çoxlu .class faylını bir .jar arxivinə yığır | jar cf app.jar *.class |
javadoc | Koddakı şərhlərdən HTML sənədləri yaradır | javadoc -d docs Main.java |
javap | .class faylının içindəki bytecode-u göstərir | javap -c Main |
jdb | Komanda sətri üçün debugger. IntelliJ-in debugger-i daha rahatdır. | jdb Main |
Hissə 4 / 6
Bu gün iki şey quraşdıracaqsınız: JDK və IDE.
// 4.1
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.
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
.msi quraşdırıcısını endirin.java -versionjavac -version.pkg faylını endirin. Mac-iniz Apple Silicon-dursa (M1 və daha yeni), aarch64 seçin. Intel prosessorlu Mac üçün x64 seçin..pkg faylını açın və quraşdırıcının dediklərini edin. macOS JDK-nı özü tapacaq.java -versionjavac -versionsudo apt install openjdk-25-jdkPaket tapılmasa, JDK 25-in Linux üçün .tar.gz arxivini adoptium.net saytından endirin.
java -versionjavac -version$ 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
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ırDemə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ərirKompü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
lesson01 qoyun. Build system olaraq IntelliJ seçin. Kursun sonrakı hissələrində Maven-ə keçəcəyik.src/Main.java faylını yaradacaq.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.System.out.println(); yazırHissə 5 / 6
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
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.
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
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.
BUNLARI SINAYIN
java Main.class yox, java Main yazın. JVM-ə faylın adını yox, sinfin adını verirsiniz.
// 5.3
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.
// 5.4
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.
// 5.5
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
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.
Main və main fərqli adlardır. System və system da.public class Main yalnız Main.java faylında ola bilər.; ilə bitirCümlənin sonundakı nöqtə kimi.{ } ilə yazılırSətrin əvvəlindəki boşluqlar insan üçündür. Kompilyator isə ancaq fiqurlu mötərizələrə baxır.| Nə | Üslub | Nümunə |
|---|---|---|
| Sinif | PascalCase | BankAccount |
| Metod | camelCase | calculateTotal() |
| Dəyişən | camelCase | firstName |
| Sabit | UPPER_SNAKE_CASE | MAX_SIZE |
| Paket | kiçik hərflər, nöqtələr | az.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
Burada dərsin əsas fikirlərini, özünüzü yoxlamaq üçün testi və ev tapşırığını tapacaqsınız.
// 6.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.
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.
JDK = JRE + proqramlaşdırma alətləri. JRE = JVM + standart kitabxana. Proqramçı kimi sizə JDK lazımdır.
JIT kompilyatoru isti kodu sürətləndirir. Zibil toplayıcı (garbage collector) isə yaddaşı sizin yerinizə boşaldır.
Hər altı aydan bir yeni Java çıxır. Java 25 hazırkı LTS versiyasıdır, biz də onunla işləyirik.
Kompilyasiya xətası faylı, sətri və problemi göstərir. Xətaları yuxarıdan aşağı oxuyun.
// 6.2
Cəmi on sual var. Cavabı seçən kimi düzgününü görəcəksiniz.
// 6.3
Bitirdiyiniz tapşırığı işarələyin. İşarələr yalnız bu brauzerdə qalır.
// 6.4
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?
int age = 25; double price = 9.99; boolean isJavaFun = true; char grade = 'A'; String name = "Java";