Tek Cümleyle Java
Java, bytecode'a derlenen ve Java Sanal Makinesi (JVM) üzerinde çalışan, statik tipli, nesne yönelimli bir programlama dilidir. Bu tek tasarım tercihi -nötr bir ara biçime derleyip ardından onu bir sanal makinede çalıştırmak- aynı derlenmiş Java programının Windows'ta, macOS'te, Linux'ta ve ötesinde hiç değişmeden çalışmasının nedenidir.
İşte o vazgeçilmez ilk program. Hemen burada çalıştırabilirsiniz:
Burada bir betik dilinde olduğundan daha fazla tören var ve bu kasıtlı; Java açık yapıyı tercih eder. Bunun her parçasını ilerleyen sayfalarda tek tek açacağız.
JVM Neden Önemli
Çoğu derlenen dil, kaynak kodu doğrudan belirli bir işlemci ve işletim sistemi için makine koduna dönüştürür. Windows için derlenmiş bir program bir Mac'te çalışmaz. Java bir dolambaç yapar:
javac,.javakaynağınızı bytecode içeren.classdosyalarına derler: gerçek hiçbir CPU için değil, hayali bir makine için talimatlar.- Platformunuzun JVM'si bu bytecode'u okur ve çalıştırır, ilerledikçe onu yerel makine talimatlarına çevirir.
Her platformun kendi JVM'si olduğu ama hepsi aynı bytecode'u anladığı için bir kez derler ve sonucu bir JVM'nin bulunduğu her yerde çalıştırırsınız. İşte o meşhur slogan: bir kez yaz, her yerde çalıştır.
JVM körü körüne yorumlamakla kalmaz. Bir tam-zamanında (JIT) derleyici hangi kodun en çok çalıştığını izler, sonra bu sıcak yolları optimize edilmiş yerel koda derler; böylece uzun süre çalışan Java programları tümüyle derlenen dillerin hızına yaklaşır.
Statik Tipli ve Nesne Yönelimli
İki özellik, Java kodunun görünüşünü ve hissini şekillendirir.
Statik tipli olmak, her değişkenin derleme zamanında bilinen bir tipi olduğu ve derleyicinin program daha çalışmadan önce tiplerinizi kontrol ettiği anlamına gelir:
count sonsuza dek bir int'tir; ona "hello" atamak derlenmezdi. Bu, başta daha fazla yazma pahasına koca bir hata sınıfını erkenden yakalar.
Nesne yönelimli olmak, Java'nın kodu sınıflar halinde düzenlediği anlamına gelir: veriyi ve onun üzerinde işlem yapan metotları bir araya getiren taslaklar. Yukarıdaki giriş noktası bile bir class Main içinde yaşar. Java'da yazdığınız hemen hemen her şey bir sınıfın içinde yaşar.
Java Ne İçin Kullanılır
Java dünyada en yaygın dağıtılan dillerden biridir. Onu şuralarda bulursunuz:
- Arka uç ve kurumsal sistemler: bankacılık, sigorta, büyük web hizmetleri ve yıllarca güvenilir biçimde çalışması gereken her şey.
- Android: platformun orijinal dili; Kotlin'in yanı sıra hâlâ Android çalışma zamanının merkezinde.
- Büyük veri: Hadoop, Spark, Kafka ve veri mühendisliği ekosisteminin büyük bölümü JVM üzerinde çalışır.
- Masaüstü ve gömülü: IDE'lerden (IntelliJ, Eclipse) satış noktası terminallerine ve akıllı kartlara kadar.
İtibarı, en özlü dil olmaktan çok kararlılık, geriye dönük uyumluluk ve devasa bir standart kütüphane üzerinedir. Yıllar önce Java için yazılmış kod genellikle bugün hâlâ çalışır.
Java, JavaScript Değildir
Adların bitmek bilmeyen karışıklığa yol açması nedeniyle açıkça söylemekte yarar var: Java ve JavaScript farklı, ilişkisiz dillerdir. Tarihsel pazarlama nedenleriyle dört harfi paylaşırlar ve önemli başka hiçbir şeyi paylaşmazlar. Java derlenen, statik tipli bir dildir ve JVM üzerinde çalışır; JavaScript dinamik tiplidir ve tarayıcılarda ve Node.js'te çalışır. Birini öğrenmek diğerini öğretmez.
Sıradaki: Java'yı Kurmak
Java'yı kendi makinenizde yazıp çalıştırmak için bir JDK'ye (Java Development Kit) ihtiyacınız var: derleyici, JVM ve standart kütüphane. Sonraki sayfa onu kurmayı ve çalıştığını doğrulamayı adım adım anlatıyor.
Sıkça Sorulan Sorular
Java ne işe yarar?
Java büyük sunucu tarafı ve kurumsal sistemleri, Android uygulamalarını (Android SDK ve Kotlin ile paylaşılan çalışma zamanı aracılığıyla), Hadoop ve Spark gibi büyük veri araçlarını ve sayısız masaüstü ile gömülü uygulamayı çalıştırır. Güçlü yönleri kararlılığı, devasa standart kütüphanesi ve aynı derlenmiş programı herhangi bir işletim sisteminde çalıştıran JVM'dir.
Java derlenen bir dil mi, yorumlanan bir dil mi?
İkisi de. Java derleyicisi (javac) kaynak kodunuzu platformdan bağımsız bytecode'a dönüştürür, JVM ise bu bytecode'u çalıştırır: önce yorumlar, ardından sık kullanılan yolları bir tam-zamanında (JIT) derleyiciyle yerel makine koduna derler. Yani Java bytecode'a derlenir, sonra çalışma zamanında yorumlanır ve JIT ile derlenir.
Java ile JavaScript aynı şey mi?
Hayır; tarihsel pazarlama nedenleriyle yalnızca bir adı paylaşan ilişkisiz dillerdir. Java, JVM üzerinde çalışan statik tipli, derlenen bir dildir; JavaScript ise tarayıcılarda ve Node.js'te çalışan dinamik tipli bir dildir. Birini bilmek diğerini bildiğiniz anlamına gelmez.