Java her yerde geçen bir konudur, peki gerçekten
nedir bu “java” ? Aşağıdaki bölümler, “java”nın nerelerde kullanıldığını,
özelliklerini ve bir programlama dili olmasının yanısıra nasıl bir platform
oluşturduğundan bahsetmektedir.
Java Programlama Dili Ve Platformu
Java oldukça basit, nesnel programlamaya dayalı, güvenli,
dinamik ve yüksek performansa sahip bir programlama dilidir. Java’nın
yaratıcıları C++ programlama dilini kendilerine model olarak seçmişler , gerekli
görmedikleri özellikleri kaldırarak yeni özellikler ile Java’yı daha güçlü hale
getirmişlerdir. C++ nesnel programlamaya dayalı son derece güçlü bir programlama
dilidir. Ancak kimi zaman C++ ‘ın bu özellikleri problemler çıkarabilir. Yazılım
geliştirme sırasında çıkan problemlerin zaman çok fazla zaman kaybına yol açması
nedeniyle Java’da mantıksal hatalara yol açabilecek bir çok özellik daha iyi
duruma getirilmiş, diğer programcıların da kodu daha kolay anlamaları için
çalışmalar yapılmıştır. Bu çalışmalar yazılımın maliyetini düşürmede son derece
önemli rol oynarlar ve bu yönüyle Java C ve C++ dillerinden ayrılır.
Java’nın Nesnel Programlama Yönü
Java nesnel programlamaya destek verir. Nesnel programlamada
heşey bir nesnedir.Bir nesne veriler ve bu veriler üzerinde işlemler
uygulayabilecek metodlardan oluşur. Bu metodlar nesne içerisinde korunabilir
veya verileri koruyabilir. Nesnel programlamada kalıtımsallık da son derece
önemli bir yer tutar. Kalıtımsallık sayesinde işinize yarayan başka bir metodun
özelliklerini yeni yarattığınız metoda atayabilir ve üzerinde değişiklik yaparak
hem baştan sona tekrar yazmak zorunda kalmaz hemde zamandan kazanabilirsiniz.
Kalıtımın bir başka yararı ise anlaşılabilir olmasıdır. Nesnelerinizi
sınıflarına göre düzenli bir şekilde ayırdığınızda , dokumantasyonu ve ilerki
çalışmaların daha kolay yürümesini sağlarsınız.
Java’nın Özellikleri :
1.
“ struct,
union ve pointer” data tipleri desteklenmez.
2.
“typedef ya da #define”
desteklenmez.
3.
“multiple inheritance” desteklenmez.
4.
“memory allocation” desteklenmez.
Memory ayırma ya da boşaltmak için garbage collection denilen otomatik
bir sistem bulunur.
5.
Komut satırı argumanları C veya C++
‘a göre Java daha farklı algılar.
6.
“operator overloading” desteklenmez.
7.
Stringler C ve C++ ‘a göre farklı
değerlendirilirler ve Stringler için java.lang package içerisinde String class
‘ı bulunur.
Bir çok programlama dilinde,
kaynak kod önce derlenir ve daha sonra çalıştırılır. Java derlenmesi ve
çalıştırılması bakımından biraz farklıdır.
Derleme sırasında java kaynak
kodu, bytecode’lara çevrilir. Platformdan (işletim sisteminden) bağımsız
olarak bytecode’lar, java interpreter’i tarafından bilgisayarda java
platformu üzerinde çalıştırılırlar. Derleme sadece bir kez gerçekleştirilir ,
ancak java programı her çalıştırıldığında java interpreter’i her seferinde
devreye girer.
Java bytecode’larını
Java Virtual Machine’in (Java VM) anlayabileceği kodlar olarak düşünebilirsiniz.
Java VM her işletim sisteminde bulunur ve bytecode’ları anlayarak sistem
üzerinde oluşturduğu Java platformu sayesinde java programının ya da java
applet’ının çalışmasını sağlar. Bu sayede hangi işletim sisteminde yazılmış ve
derlenmiş olursa olsun, java programınızı başka işletim sistemleri üzerinde de
çalıştırabilirsiniz.
Örneğin, Unix’de derleyerek
oluşturduğunuz ,bytecode dosyasını , Windows’da ya da Macintosh bir
bilgisayarda çalıştırabilirsiniz. Bu nedenle java bytecode’ları “bir kere
yaz, her yerde çalıştır” sloganı ile de anılırlar. Bunun anlamı, sisteminizde
Java VM yüklü olduğu sürece, java programlama dili ile yazılmış aynı program
Windows 2000 de,Linux’da ya da iMac’da çalışabilir.
Java Platformu
Bir programın çalıştığı donanım ya da yazılım ortamına
platform denir. Windows 95/98, Windows 2000 , Linux, Solaris, MacOS gibi
populer kullanılan platformlardan bahsettik. Bir çok platform da işletim sistemi
ve donanımın birleşmesi ile oluşturulur. Java platformu, donanım tabanlı
platformların üzerinde çalışan ve sadece yazılım platfomu olması yönüyle diğer
platformlardan ayrılır.
Java platformunun iki birimi vardır.
·
Java Virtual Machine
(Java VM)
·
Java Application
Programing Interface (Java API)
Java VM java platformunun tabanını oluşturur ve çeşitli donanım
tabanlı platformlar üzerine oturtulmuştur.
Java API ise , son derece yararlı özelliklere sahip hazır
yapılmış yazılım parçalarından oluşur. Grafik ara birimi (GUI) bunlardan
birisidir. Java API iki grupta toplanır. Birinci grupta ilgili classların
kütüphane dosyaları,paketler, ikinci grupta ise ara birimler yer alır.
Figürde Java API’nin ve Java VM’nin donanım üzerinde bir platform oluşturduğu
görülür.
Native code, derlendikten sonraki
koddur. Derlenen kod belirli bir platformda çalışır. Platformdan bağımsız
olmasıyla Java’nın biraz yavaş olabileceği düşünülebilir. Bununla birlikte,
akıllı derleyeciler, iyi ayarlanmış interpreterlar, ve just-in-time bytecode
derleyeciler performansı biraz daha arttırarak native koddan elde edilen
başarıya yakın bir değer yakalayabilir.
JAVA NELER YAPABİLİR ?
Java web’e yeni bir akıcılık getirmiştir. Java programcıları
çeşitli medya formatlarını ve veri protokollerini her java uyumlu browserda
görünebilir hale getirmişlerdir. Düz html ve multimedya içeren sayfalara,
çalıştırışabilir ve işlem yapılabilir içerik eklenmesine olanak sağlanmıştır.
Java programları applet olarak ya da uygulama olarak yazılırlar.
Appletları java uyumlu browserlarda görebilirsiniz. Animasyonlar ve interaktif
uygulamalar ile internette gezinirken muhtemelen karşılaşmışsınızdır. Ancak java
programlama dili sadece akıllı ve eğlenceli appletlar yazmak için değil, aynı
zamanda güçlü bir yazılım platformudur. Çeşitli API’leri kullanarak birçok
program yazabilirsiniz.
Appletlarından farklı olarak, uygulamalar direk olarak Java
platformu üzerinde çalışan programlardır. Server olarak bilinen
özel bir çeşit uygulama, network üzerinde hem hizmet verir , hem de diğer
client’ları destekler. Örneğin, Web Serverları, Proxy Serverları, Mail
Serverları.... Diğer bir özel programda Java Web Serverlarında çalışan, cgi
scriptleri gibi interaktif olarak web uygulamaları yaratmaya yarayan servlet’tır.
JavaBeans de Java platformuna bileşen teknolojisini sunar.
JavaBeans API ile tekrar kullanılabilen, platformdan bağımsız olarak çalışabilen
bileşenler yaratmak mümkündür. Bu bileşenleri applet, uygulama ya da karışık
bileşenler olarak birleştirmekde desteklenmektedir.JavaBean componentleri
Beans olarak bilinir.
Java 2D API , java programlarınızda 2D grafikler ile çalışma olanağı sunar. Java
2D API ile, her kalınlıkta çizgi çizebilir, şekilleri gradient ya da desen ile
doldurabilir, text ya da grafikleri taşıyabilir, döndürebilir,
ölçeklendirebilir, kesebilir, üstüste getirebilirsiniz.
Java
Sound Engine, birçok farklı türde ses dosyasını ( AIFF, AU, WAV, MIDI, and RMF
dosyaları ) applet ya da uygulamanız içerisinde çalmanızı sağlar.
RMI (Remote Method Invocation) sistemi sayesinde, bir Java VM’de çalışan java
programı ile başka bir Java VM’de çalışan ancak uzaktaki java programları ile
iletişimi sağlayabilirsiniz.
Java IDL ise JDK 1.2 den sonra desteklenen CORBA uyumlu dağıtımlı nesne
teknolojisidir. Java IDL’yi kullanarak java uygulamaları ya da appletları web
üzerinde herhangi bir yerdeki CORBA destekli dile ile yazılmış nesne ile
iletişim kurabilir.
Makale:
Java Dili ve J2EE Platformu J# ve Java dili Rıfat Yavuz
|