Sunday, February 13, 2011

JAVA [Ders - 1] - Hello World!

Üniversitedeki ilk yılımı bitirene kadar neden Java değil de daha düşük seviye olan "C" programlama dilini öğrettiklerini hep kendime sordum. Ancak daha sonra farkettim ki bize öğrettikleri ya da öğretmeyi amaçladıkları şey bir programlama dilinden çok daha öte, kişinin bireysel olarak bir şeyleri öğrenme kapasitesini ve hevesini artırmaktı. (en azından benim üzerimde böyle bir etki bıraktı) Bende bu şekilde uzun bir süredir kendi çabalarım ve internetteki kaynakların da sayesinde "Java" öğrenmeye başladım. Java'yı tercih etmemde birkaç neden etkili oldu. Bu nedenlerden ilki Java'nın nesne yönelimli bir programlama dili olmasıydı. (ileride bu konuya daha ayrıntılı bir biçimde değineceğim) İkinci neden Java'nın açık kaynak ve çapraz platform bir programlama dili olmasıydı. Bunun yanı sıra C programlama dilinde varolan kimi çarpıklıklar ve zorlukların üstesinden gelinmiş çok daha kolay, rahat ve güvenli bir dil vardı karşımda. Bu ve buna benzer daha bir çok şeyle birlikte Java öğrenmeye başladım. Ve öğrendiklerimi parça parça blogumda yayınlama kararı aldım. Bugünkü ilk ders olarak da konsol ekranına (henüz grafiksel kullanıcı arayüzüne sahip programlama için çok erken) "Hello World!" yazdıracağız.

Java'nın Çalışma Prensibi
Java alışılageldik programlar gibi çalışmaz. Yazmış olduğunuz Java kodu derlendikten sonra, Bytecode'a çevrilir. Bytecode daha sonra JRE (Java Runtime Environment - Java Çalışma Ortamı) tarafından sunulan JVM (Java Virtual Machine - Java Sanal Makinesi) ile, hangi bilgisayarda kullanıyorsanız o yapıya uygun hale dönüştürülüp çalıştırılır. İşte bu sayede Java'nın platform bağımsızlığı sağlanmış olur. Yani temelde yazdığınız kodlar, direkt olarak makinede değil. Makine üzerinde kurulu olan sanal bir makine (JVM) tarafından çalıştırılır. Şimdi gelelim bilgisayarımızda Java için gerekli olan araçlara;

JRE Kurulumu
JRE (Java Runtime Environment) kurmak için buradaki adrese girin. Ve buradan işletim sisteminize uygun, versiyonu seçip indirmeye başlayabilirsiniz. Setup dosyasını indirdikten sonra kurulumu yapıp buradaki adresten kurulumun doğru yapılıp yapılmadığını anlayabilirsiniz. Şayet kurulum doğru bir şekilde yapıldıysa bilgisayarınızdaki Java sürümü algılanır ve JRE'yi sorunsuz yüklediniz demektir.

JDK Tipleri

Şimdi gelelim Compiler kısmına... Yukarda anlattığım kısım, sadece Java programlarını çalıştırmak içindi. Yazdığınız kodun derlenmesi içinse, bir compiler'a (derleyiciye) ihtiyaç vardır. Java desteklediği özelliklere göre SDK'larını (Software Development Kit) üçe ayırmıştır. Çok kısaca bahsedecek olursak:

J2ME(Java 2 Micro Edition): Mobil uygulamaları geliştirebileceğiniz bir ortam sunar. Kullanabileceğiniz fonksiyonlar ve özellikleri çalışacağı ortama göre (cep telefonu vb.) sınırlandırılmıştır.

J2SE(Java 2 Standart Edition):
Standart uygulamalar geliştirmek içindir.

J2EE(Java 2 Enterprise Edition): Aklınıza gelebilecek hemen herşeyi kapsayan, çok katmanlı yapıda proje geliştirmenizi sağlamak için kullanılır. Servlet, JSP vb. birçok şeyi kapsadığı gibi, J2SE'nin da her özelliğini kapsar. Kısacası en üst düzey bu oluyor. Hangisini yükleyeceğiniz size kalmıştır. Ancak ben J2EE'yi tercih ediyorum. Bütün bunlardan sonra sıra geldi ilk programımızı yazmaya.
public class HelloWorld {
public static void main( String args[ ] ) {
System.out.println("Hello World!");
}
}
Yukarıdaki kodu herhangi bir metin editörüne kopyalayın ve dosyayı Masaüstüne kaydedin ama kaydederken ismini HelloWorld.java olarak kaydedin. Şimdi sıra geldi programınızı derlemeye ben Ubuntu 10.04 kullandığım için terminalden masaüstüne geldim ve aşağıdaki kodları sırasıyla konsol ekranına yazdım.
javac HelloWorld.java
java HelloWorld
Şimdi komutları sırasıyla açıklayacağım. "javac HelloWorld.java" komutu HelloWorld.java isimli dosyayı derleyip aynı dizinde HelloWorld.class adında bir dosya oluşturuyor. Aslında burada oluşturulan dosya yukarıda da bahsettiğimiz Java kodunun derlendikten sonra Bytecode haline çevrildiği evredir. Bundan sonraki "java HelloWorld" ise oluşturulan bu Bytecode'un makine üzerinde kurulu olan sanal bir makine (JVM) tarafından çalıştırılmasıyla programın çıktısını elde etmemizi sağlayan komuttur. Tüm bu işlemler esnasında dikkat etmemiz gereken en önemli noktalardan birisi kodumuzda varolan class adının dosya adıyla aynı olması gerektiğidir. Aksi takdirde derleme anında hata almış oluruz. Yukarıdaki kodun açıklamasını ve detayları bu dersin devamı olan 2.derste vermeyi planlıyorum aksi takdirde çok uzun bir yazı olacak.

No comments:

Post a Comment