Java Programlama Diline Giriş
Java programlama dili diyerek eksik bir tabir kullanmış olabilirim. Çünkü Java sadece bir programlama dili değil aynı zamanda bir platformdur. Bu yüzden Java Teknolojisi şeklinde hitap etmek daha doğru olur. “Bu da ne demek” derseniz şöyle anlatırım; Siz java kodunuzu herhangi bir text editör ile .java uzantılı dosyalara yazarsınız. Daha sonra derleyiciniz ile (Java için javac) compile işlemini gerçekleştirirsiniz ve .class uzantılı bir dosya oluşur. Bu dosyanın içerisinde Java Virtual Machine denen sanal cihazın anlayabileceği makine kodları (bytecode) bulunmaktadır. Daha sonra java launcher bu dosyayı Java Virtual Machine üzerinde çalıştırır.
Gördüğünüz gibi Java ‘nın çalıştığınız sistemle pek ilişki yoktur. Tamamen standalone bir ortam olarak düşünebilirsiniz. Java Virtual Machine (bundan sonra JVM diyeceğim) çalışabildiği sistemlerde -ki birçok sistemde çalışır, tek bir java kodundan derlenmiş .class uzantılı dosya sorunsuz çalışacaktır.
Tabi durum böyle olunca doğrudan sistem tarafından çalıştırılan native dillere göre daha yavaş çalışacaktır diyebilirsiniz. Haksız sayılmazsınız, fakat sanal makine teknolojisi o kadar gelişti ki artık JVM üzerinde çalışan java ile diğer diller arasında pek bir performans farkı da kalmadı.
Java ‘dan bahsederken basit, nesne tabanlı, portatif, yüksek performanslı, güçlü, güvenli, dinamik gibi sıfatları gönül rahatlığıyla kullanabiliriz. Bunların her birini ne şekilde hakettiğine dair uzun uzun makaleleri resmi sitesinde dokumantasyon kısmında bulabilirsiniz (şu white paper)
Uygulamalarınızı geliştirirken birçok araca ihtiyaç duyarsınız. Java Teknolojisi size compile, debug, run, documentation gibi işlemlerini yapabilmeniz için Development araçları, networking, security, XML generation, db access gibi birçok işlemi kolayca yapabilmeniz için hazır kütüphaneler (API), uygulamalarınızın arayüzünü tasarlayabilmeniz için Swing gibi arayüz araçları (GUI), uygulamalarınızı son kullanıcılara sunabilmeniz için Deployment araçları ve daha birçok gelişmiş teknoloji kullanabilme imkanı sunar. Bu teknolojilerin hepsine zamanla (ve öğrendikçe) değinmek istiyorum. Şimdilik en basitten bir giriş yapalım. İlk uygulama her zamanki gibi “Hello World” olacak (:
Java uygulaması geliştirebilmek için minimum gereksinimlerimiz;
- Java SE Development Kit (bende JDK 7 var, buradan son versiyonu indirebilirsiniz)
- Eclipse IDE (ben Eclipse tercih ettim ama mecbur değilsiniz, buradan son versiyonu indirebilirsiniz)
Adım adım gidelim, önce indirdiğiniz JDK‘yi yükliceksiniz tabi, onu anlatmıyorum.
- Eclipse açılırken workspace sorar, bu proje dosyalarınızın bilgisayarınızda duracağı yerdir, uygun biyer seçip eclipse’i açın.
- Açıldıktan sonra File menüsünden New->Java Project tıklayın.
- Aşağıdaki gibi bir pencere gelecektir. Burada projeye bir isim verip Finish diyoruz.
- Solda Package Explorer isminde bir panel açılacaktır. Bu panel içerisinde projenizi ağaç yapısı şeklinde görebilirsiniz. Muhtemelen bu panel en çok kullanacağınız yer olacaktır. Burada en önemli klasör srcklasörü, kodları bunun içerisine koyacağız.
- Package Explorer ‘ da src klasörüne sağ tıklayarak New->Class tıklıyoruz. Aşağıdaki gibi bir pencere gelecek, burada classımız için bir isim veriyoruz, birde package ismi vermekte fayda var, package sayesinde classlarınızıgruplayabiliyorsunuz.
- Bu işlemin ardından ilk .java uzantılı dosyanız oluşacak ve içerisinde HelloWorld isimli bir class oluşacaktır. Class içerisinde ise main methodu oluşturulacaktır. “Class nedir?, main methodu da noluyor?” gibi sorularınız varsa başka biyerden başlayabilirsiniz. Çünkü ben Java hakkında yazdığım yazılarda en azından bir nesne tabanlı programlama dili bildiğinizi varsayacağım. Yinede OOP mantığı ile ilgili bir yazı yazabilirim. Çünkü nesne tabanlı programlama dili bilinse bile OOP mantığı tam anlamıyla anlaşılıp uygulanmıyor olabiliyor. Fazla uzatmadan koda dönelim. Aşağıdaki gibi görünüyor olması lazım;
package dersler; /** * @author ibrahim.bilge * */ public class HelloWorld { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }
- Hello World uygulaması için main methodu içerisinde println fonksiyonunu çağırıyoruz. Bunun için
System.out.println("Hi World!");
yazıyoruz. Özellikle php bilen arkadaşlar bir yazdırma işlemi için bu kadar kod yazmak istemeyebilir. En azından kısayol kullanabilirsiniz. sysout yazdıktan sonra CTRL+Space basarsanız, otomatik tamamlayacaktır. Bunlara alışınca çok hızlı kod yazılabiliyor (: Kodun son hali şöyle..
package dersler; /** * @author ibrahim.bilge * */ public class HelloWorld { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hi World!"); } }
- Compile işlemi için Project menüsünden Build Project seçiyoruz. Eğer aynı menüde Build Automatically seçeneği işaretli ise Build Project linkine tıklayamayabilirsiniz. Bu durumda otomatik compile olmuştur. Diğer adıma geçebilirsiniz.
- Compile işleminin ardından arka tarafta .class uzantılı bir dosya oluşturulur ve çalıştırmaya hazırdır. Run menüsünden Run seçeneğine tıklayarak çalıştırabilirsiniz. Aşağıda Console panelinde çıktıyı görebilirsiniz.
Hadi hayırlı olsun. Bir java uygulaması yazdınız. Bir sonraki yazıya kadar buraları kurcalayabilirsiniz. Zaten şu kod bu işe yarar bu kod şu işe yarar şeklinde bir yazı yazmıycam. O yüzden kodları kurcalayarak veya internetten bulabilirsiniz. Benim burada anlatmak istediğim işin temeli ve mantığı. Gerisi kendiliğinden gelecektir. Sevgilerimle…