Java’nin Temelleri
2026
Pedagojik Not: Bu bölüm, Java programlama diline ilk adımınızı atmanızı sağlayacak temel kavramları içermektedir. Özellikle JVM, JRE ve JDK arasındaki farkları anlamak, ilerleyen bölümlerde karşılaşacağınız birçok kavramın temelini oluşturacaktır.
Java, 1991 yılında James Gosling ve ekibi tarafından Sun Microsystems’de geliştirilmeye başlanmıştır. Başlangıçta “Oak” (Meşe) adıyla anılan dil, daha sonra Java olarak yeniden adlandırılmıştır. Java’nın evrimi şu şekilde özetlenebilir:
Önemli Bilgi: Java’nın en büyük avantajlarından biri geriye dönük uyumluluktur. 20 yıl önce yazılmış bir Java kodu, günümüzdeki en son Java sürümünde de çalışabilir.
Java, çok geniş bir kullanım yelpazesine sahiptir:
Java’nın bu kadar yaygın kullanılmasının başlıca nedenleri:
JDK, Java uygulamaları geliştirmek için ihtiyaç duyulan tüm araçları içeren pakettir. JDK’nın içerdiği temel bileşenler:
Kod Örneği: JDK kurulumunu doğrulama
## 1.3 Java sürümünü kontrol etme
java -version
## 1.4 Java derleyici sürümünü kontrol etme
javac -versionJRE, Java programlarını çalıştırmak için gerekli olan minimum ortamdır. JRE şunları içerir:
Uyarı: JRE sadece Java programlarını çalıştırmak içindir. Yeni bir Java programı geliştirmek için JDK gereklidir.
Kod Örneği: Basit bir Java programını JRE ile çalıştırma
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Java çalışıyor!");
}
}JVM, Java’nın platform bağımsızlığının temel taşıdır. JVM’in görevleri:
.class dosyalarındaki bytecode’u okur ve çalıştırırKod Örneği: Bytecode üretme süreci
public class BytecodeDemo {
public static void main(String[] args) {
int toplam = 5 + 3;
System.out.println("Toplam: " + toplam);
}
}Derleme ve çalıştırma komutları:
## 1.5 Kaynak kodu bytecode'a çevir
javac BytecodeDemo.java
## 1.6 Bytecode'u çalıştır
java BytecodeDemoBu üç bileşen arasındaki hiyerarşik ilişki:
JDK (Java Development Kit)
├── JRE (Java Runtime Environment)
│ ├── JVM (Java Virtual Machine)
│ ├── Çekirdek Kütüphaneler
│ └── Diğer Çalışma Zamanı Bileşenleri
├── Geliştirme Araçları (javac, jdb, javadoc, jar)
└── API Kütüphaneleri
Pratik İpucu: - Sadece Java programı çalıştıracaksanız → JRE yeterlidir - Java programı geliştirecekseniz → JDK gereklidir - JDK, JRE’yi de içerdiği için her zaman JDK kurmanız önerilir
.msi veya .exe dosyasını çalıştırC:\Program Files\Java\jdk-17## 1.8 Homebrew ile kurulum
brew install openjdk@17
## 1.9 Manuel kurulum için .dmg dosyasını indir## 1.10 Debian/Ubuntu tabanlı sistemler
sudo apt update
sudo apt install openjdk-17-jdk
## 1.11 RHEL/CentOS/Fedora tabanlı sistemler
sudo yum install java-17-openjdk-devel## 1.16 JAVA_HOME değişkenini ayarlama
setx JAVA_HOME "C:\Program Files\Java\jdk-17"
## 1.17 PATH değişkenine JDK bin dizinini ekleme
setx PATH "%PATH%;%JAVA_HOME%\bin"## 1.22 ~/.bashrc veya ~/.zshrc dosyasına ekleyin
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATHKurulum doğrulama komutları:
## 1.23 Java sürümünü kontrol et
java -version
## 1.24 Derleyici sürümünü kontrol et
javac -version
## 1.25 JAVA_HOME değişkenini kontrol et
echo %JAVA_HOME% # Windows
echo $JAVA_HOME # macOS/LinuxJava geliştirme için en popüler IDE’ler:
| IDE | Özellikler | Kullanım Alanı |
|---|---|---|
| IntelliJ IDEA | Akıllı kod tamamlama, refactoring, Spring desteği | Profesyonel geliştirme |
| Eclipse | Ücretsiz, geniş eklenti desteği | Kurumsal projeler |
| NetBeans | Swing GUI builder, JavaFX desteği | Masaüstü uygulamaları |
Tavsiye: Yeni başlayanlar için IntelliJ IDEA Community Edition (ücretsiz) önerilir.
/**
* MerhabaDunya - İlk Java Programı
* Bu program ekrana "Merhaba Dünya!" yazdırır
*/
public class MerhabaDunya {
public static void main(String[] args) {
// Ekrana mesaj yazdır
System.out.println("Merhaba Dünya!");
}
}Java programının temel yapısı:
public class MerhabaDunya - Programın ana sınıfıpublic static void main(String[] args) - Programın başlangıç noktasıSystem.out.println() - Ekrana yazdırma## 1.31 Kaynak kodu derle (bytecode üret)
javac MerhabaDunya.java
## 1.32 Bytecode'u çalıştır
java MerhabaDunya
## 1.33 Beklenen çıktı:
## 1.34 Merhaba Dünya!Derleme sonrası oluşan dosyalar:
- MerhabaDunya.java → Kaynak kod (insan tarafından okunabilir)
- MerhabaDunya.class → Bytecode (JVM tarafından okunabilir)
public class HataliProgram {
public static void main(String[] args) {
// HATA 1: Noktalı virgül eksik
System.out.println("Merhaba") // ; eksik
// HATA 2: String tırnak işareti eksik
String mesaj = "Merhaba; // " eksik
// HATA 3: Yanlış veri tipi
int sayi = "on"; // String int'e atanamaz
}
}Derleme hatası çıktısı:
HataliProgram.java:5: error: ';' expected
System.out.println("Merhaba")
^
HataliProgram.java:8: error: unclosed string literal
String mesaj = "Merhaba;
^
HataliProgram.java:11: error: incompatible types: String cannot be converted to int
int sayi = "on";
^
3 errors
Önemli Uyarı: Derleme hataları, kodunuzda sözdizimi (syntax) hatası olduğunu gösterir. Bu hatalar düzeltilmeden program çalıştırılamaz.
public class RuntimeHata {
public static void main(String[] args) {
int sayi1 = 10;
int sayi2 = 0;
// Bu satır çalışma zamanında hata verecek
int sonuc = sayi1 / sayi2;
System.out.println("Sonuç: " + sonuc);
}
}Çalışma zamanı hatası çıktısı:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at RuntimeHata.main(RuntimeHata.java:8)
```java package com.example.ilkprogram;
/** * Bu sınıf, doğru kod düzenini gösterir. * * @author Ali Yılmaz * @version 1.0 * @since 2024-01-01 */ public class DogruDosyaAdi {
// Değişken isimleri camelCase kuralına uygun olmalı
private String kullaniciAdi;
private int yas;
/**
* Programın başlangıç noktası