JAVA NEDİR?

Java Duke maskotu ve arka planda Java kaynak kodu satırları

1995'te Sun Microsystems, "Write Once, Run Anywhere" (Bir kez yaz, her yerde çalıştır) sloganıyla Java'yı duyurdu. Aradan 30 yıl geçti. Slogan hâlâ geçerli, Java hâlâ kurumsal dünyanın bel kemiği. Peki bu dil neden bu kadar uzun süre ayakta kaldı?

Java Nedir?

Java, nesne yönelimli, platform bağımsız, genel amaçlı bir programlama dilidir. James Gosling liderliğinde Sun Microsystems bünyesinde geliştirilen dil, 1995'te kamuoyuna tanıtıldı. 2010'da Oracle'ın Sun'ı satın almasıyla birlikte Java'nın yönetimi Oracle'a geçti.

Java'yı rakiplerinden ayıran temel özellik JVM (Java Virtual Machine — Java Sanal Makinesi) aracılığıyla sağlanan platform bağımsızlığıdır. Bir kez derlenen Java kodu, JVM yüklü her ortamda çalışır: Windows, Linux, macOS, mobil cihazlar.

Java Nasıl Çalışır?

Java'nın çalışma mekanizması iki aşamalıdır. Kaynak kod (.java) önce derleyici tarafından bytecode'a (.class) dönüştürülür. Bu bytecode doğrudan işlemci tarafından çalıştırılamaz; JVM tarafından yorumlanır ve çalıştırılır.

// Basit bir Java örneği
public class Merhaba {
    public static void main(String[] args) {
        String mesaj = "Merhaba, Dünya!";
        System.out.println(mesaj);
        
        // Döngü örneği
        for (int i = 1; i <= 5; i++) {
            System.out.println(i + ". satır");
        }
    }
}

JDK, JRE ve JVM Farkı

Bu üç kavram sık karıştırılır. JVM (Java Virtual Machine), bytecode'u çalıştıran sanal makinedir. JRE (Java Runtime Environment), JVM ve Java uygulamalarını çalıştırmak için gerekli kütüphaneleri içerir — son kullanıcıların ihtiyacı olan budur. JDK (Java Development Kit) ise JRE'ye ek olarak derleyici ve geliştirme araçlarını da içerir; yazılım geliştirmek için JDK gerekir.

Nesne Yönelimli Programlama

Java, nesne yönelimli programlamanın (OOP) dört temel ilkesini uygular: kapsülleme, kalıtım, çok biçimlilik ve soyutlama. Bu ilkeler büyük ve karmaşık sistemlerin modüler biçimde geliştirilmesini kolaylaştırır.

// Kapsülleme örneği
public class BankaHesabi {
    private double bakiye;  // Doğrudan erişim kapalı
    
    public void para_yatir(double miktar) {
        if (miktar > 0) {
            bakiye += miktar;
        }
    }
    
    public double bakiye_sorgula() {
        return bakiye;
    }
}
Java Spring Boot uygulaması geliştiren yazılım mühendisi ekrana bakıyor

Java Kullanım Alanları

Kurumsal Uygulama Geliştirme

Java'nın en güçlü olduğu alan burasıdır. Bankacılık sistemleri, sigorta uygulamaları, ERP çözümleri — büyük kurumsal yazılımların önemli bir bölümü Java ile yazılmıştır. Spring Framework ve Spring Boot, kurumsal Java geliştirmenin standart araç seti haline gelmiştir. LinkedIn, Airbnb ve Twitter backend altyapılarında Java kullanmaktadır.

Android Uygulama Geliştirme

Android'in başlangıç dili Java'dır. Milyonlarca Android uygulaması Java ile yazılmıştır. Google 2017'de Kotlin'i resmi dil olarak duyurmuş olsa da Java, Android ekosisteminde varlığını sürdürmektedir. Mevcut Java kod tabanları ve kütüphanelerin büyüklüğü bu sürekliliği destekler.

Büyük Veri

Apache Hadoop ve Apache Spark — büyük veri dünyasının iki devi — Java tabanlıdır. Petabaytlarca veriyi işleyen dağıtık sistemlerin altyapısında Java'nın güçlü tip sistemi ve olgunluğu belirleyici rol oynar.

Java Sürümleri

Oracle 2017'den itibaren Java'yı 6 aylık döngülerle günceller. Her 3 yılda bir LTS (Long-Term Support — Uzun Dönem Destek) sürümü yayınlanır. Üretim ortamları için LTS sürümleri tercih edilir.

Yaygın kullanılan LTS sürümleri:

  • Java 8: Hâlâ büyük kod tabanlarında yaygın; lambda ve Stream API ile dönüşüm noktası
  • Java 11: Modüler sistem (Project Jigsaw), pek çok projenin tercih ettiği orta-LTS
  • Java 17: Sealed class, records, pattern matching desteği
  • Java 21: Mevcut LTS — virtual threads (Project Loom) ile hafif eşzamanlılık olgunlaştı

Java mı Python mı?

Bu sorunun kesin bir cevabı yoktur — her ikisi farklı güçlere sahip. Java tip güvenliği, performans ve büyük ölçekli kurumsal sistemler için güçlüdür. Python veri bilimi, hızlı prototipleme ve otomasyon için üstündür. Birçok organizasyon her iki dili farklı amaçlarla kullanır.

Java'yı, Spring Boot'u ve mikroservis mimarilerini sistematik biçimde öğrenmek için Java eğitimi programlarından yararlanabilirsiniz.