Nis
2
2012

JAVA

          Java çok fazla olanak sunan, yapabildiklerinin insanın hayalleriyle sınırlı olduğu web platformu için vazgeçilmez bir açık kaynak kodlu yazılım platformudur. Java Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye baslanmış gerçek nesneye yönelik, platform bağımsız, yüksek performanslı, çok işlevli, yüksek seviye bir program dilidir. Java ilk çıkktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir platform dili olarak düşünülmüş. Ancak bakmışlar ki platform bağımsızlığı özelliği C ve C++’tan çok daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunuyor, hemen her yerde kullanılmaya başlanmış. Şu anda özellikle kurumsal alanda ve mobil cihazlarda son derece popüler olan java, özellikle J2SE 1.4 ve 1.5 sürümü ile masaüstünde de gücünü arttırmayı hedefliyor. Java’nın ilk sürümü olan Java 1.0(1995) Java Platform 1 olarak adlandırıldı ve tasarlama amacına uygun olarak küçük boyutlu ve kısıtlı özelliklere sahipti. Daha sonra platformun gücü gözlendi ve tasarımında büyük degişiklikler ve eklemeler yapıldı.

                                                   Nasıl Çalışır?
Bir java yazılımı şu şekilde geliştirilir:
Programcı java kodunu yazar.Bu kod bir java derleyicisi ile derlenir. Sonuçta bytekod adı verilen bir tür makine kodu ortaya çıkar. Platform bağımsızlığını saglayan şey bytekod’dur. Çünkü bir kere bytekod oluştuktan sonra yazılım tüm işletim sistemlerinde çalışabilir.
Bu bytekod Java Virtual Machine(Java Sanal Makinesi) tarafından adım adım işletilir. Aşağıda java ve C++ kodunun geçirdiği aşamalar gösterilmiştir.

                                                   Java Kodunun Yazılması
      Java nesneye yönelik bir dil olduğundan tüm yazılım sınıflar ve nesneler üzerinden yürütülür. Sınıflar uygulamadaki nesnelerin tanımlandığı kod parçalarıdır. Java’da her bir sınıf bir dosya içerisinde yer alır. Dosyaların uzantıları .java şeklindedir. Dosya adı ise içinde tanımlanan sınıf ile aynıdır. Örneğin, BenimSinif.java gibi.

                                                          Derleme
      Derleyici kısaca herhangi bir editor ile yazılan java kaynak kodlarını(yani .java uzantili siniflarin yer aldigi dosyalari) java sanal makinesinin çalıştırabileceği bir tür makine dili(assembler) olan Bytecode’a dönüştürür. Bu dönüştürülen bytekod ise .class dosyaları içerisinde saklanır. Java kodunu derlemek için bir java derleyicisine ve java kütüphanelerine ihtiyacınız var. Şu anda iki derleyici yaygın olarak kullanılmaktadır. Bir tanesi Sun’ın SDK’si ile birlikte gelen javac. diğeri ise IBM’in açik kodlu derleyicisi jikes. Benim yaygın olarak kullandığım Jikes, cok hızlı derlemesi ile ünlü olsa da en son java yazılımlarını derlemek için javac’e ihtiyaç duyulabilir. Ayrıca linux altında derleme yapmak için gnu lisansi ile geliştirilen açık kodlu Gnuj kullanılabilir. Derleyici ve kütüphanelerin(Java API) bulunduğu uygulamaya “J2SE SDK” adı verilmiştir.

                                                    Java Sanal Makinesi
         Java sanal makinesi donanımdan bağımsız yazılım geliştirme ihtiyacına cevap verme amacıyla geliştirilen bir teknolojidir. Java’nın temel felsefesi olan “bir kere yaz, her yerde çalıştır” sanal makine sayesinde varolmuştur. Sanal makineyi bir yönden bir tür hayali bir mikroişlemci gibi düşünebiliriz. Gerçek tüm mikroişlemciler(Intel Pentium, AMD Athlon, Sun Sparc vs) belirli bir grup komutu işlemek üzere tasarlanmıştır. Bu komutlara işlemcinin komut kümesi adı verilir. Örnegin x86 komut kümesi gibi. Tüm yazılımlar çalışabilmek için önce bu komut kümesine dönüştürülür, daha sonra işlemci bu komutları sıra ile gerçek işlemci komutlarına dönüştürüp işletir. Java sanal makinesi de Bytekod komut kümesini tıpkı işlemci gibi adım adım işletir. Java’nın interpreted bir dil olarak adlandırılmasının nedeni budur. Bytekod ilkel işlemlerin yanında(ilkel işlemler, mikroişlemci seviyesi komutlardır, aritmetik işlemler, bit işlemleri, bellek ve yığın işlemleri vs.) sanal makinenin üzerinde çalıştığı işletim sistemine yönelik işlemler de barındırır. Bu sayede Java Virtual Machine yazıcı, seri port, grafik, dosya servisi, ağ bağlantısı gibi yazılım ve donanım servislerine erişim yapabilir.

Java’nın doğrudan bytecode çalıştırması performansının düşük olabileceği izlenimini verebilir. Ancak, JVM tasarımı geçen 10 yılda çok değişmiş ve geliştirilmiştir. Şu anda java’nın performansı çoğu alanda C++’in performansına yakın bir seviyededir ve işlemci hızı ve bellek miktarının her geçen yıl katlanarak artması ile performans konusu çoğu uygulamada artık ikinci planda kalmıştır. Aşağıda çeşitli platformlar için java’nın çalışması basit blok şema olarak gösterilmiştir. Eğer sözkonusu dil C++ olsaydı üç ayrı kod ya da kodda üç ayrı obje dosyası oluşturulması gerekirdi ve çoğu uygulamada C++ projesi sadece tek platforma destek verirdi(win32 gibi).

Kaynak:http://www.bilgiustam.com/java-nedir-nasil-calisir/

Yazar Hakkında

Eren Kiraz 6 adet yazısı bulunuyor..

Bilgisayar Mühendisi

Print Friendly