ana sayfa : araştırma : java uygulamaları : javanın özellikleri [ 3 / 12 ]

GERİ

3  JAVANIN ÖZELLİKLERİ

Java dağınık uygulamaların gerçekleştirilmesinde kullanılan bir programlama dilidir. Kullanıcının, sayfanın içeriği ile etkileşimi sağlaması nedeniyle diğer göz gezdiricilerden  ayrılır. Java ile göz gezdiricilere, içeriği ve bu içeriğin görüntülenebilmesi için gerekli olan programları aynı zamanda göndermek mümkündür. Böylece göz gezdiricinin, ilgili içeriği görüntülemek için gerekli özellikleri kendi bünyesinde bulundurmasına gerek kalmaz. Bu da kullanıcıların ilgili göz gezdiricilerin  içeriği  desteklemesini beklemeden veya sürekli olarak göz gezdiricisini değiştirmek zorunda kalmadan farklı içerikli bilgileri görüntüleyebilmesini sağlar. Örneğin HTTP’ yi desteklemeyen bir ana bilgisayarda bulunan veri tabanı, WWW üzerinde kullanıma açılmak istendiğinde, ilgili göz gezdiricinin bu özel sistemi desteklemesini beklemekten başka çaresi yoktur. Ancak Java kullanılarak bu desteğin göz gezdirici tarafından verilmesine gerek kalmadan WWW üzerinde uygulamaların gerçekleştirilmesi mümkün olur. Java, aynı zamanda belirli ortamlara bağımlı olarak çalışmaz.

Herhangi bir Java Programı, Java desteği bulunan herhangi bir göz gezdirici ile herhangi bir ortamda çalışabilir. Netscape Navigator 2.0 ile Windows 95, Windows NT, MacOs ve birçok UNIX ortamında Java’nın kullanılması mümkün olamaktadır. Java sadece WWW için kullanılmaz. Java ile Fortran, C++ gibi diğer bir programlama dilleri ile yapılabilen hemen hemen herşeyin gerçekleştirilmesi mümkündür. Üstelik Java bu dilleregöre daha basit ve açıktır. Java’nın özelliklerini aşağıdaki gibi özetlemek mümkündür(Grup Java,2000)

Basit

Java içerisinde gereksiz özelliklerin bulunmamasına ve gerekli olan tüm fonksiyonların da kullanımı kolay bir şekilde bulundurulmasına özen gösterilmiştir.

Object – Oriented

Java içindeki hemen hemen her şey ya bir sınıf, metod ya da bir objedir. Sadece en basit operasyonlar ve veri tipleri (ini,for,while v.b.) alt-obje seviyesinde bulunur.

Ortam Bağımsız

Java Programları, byte kod formatında derlenir. Yani, interpretenlar yardımıyla Windows 95, Windows NT ve Solanis 2.3 gibi bir çok ortamında okunması ve çalışması mümkündür.

Güvenli

Java kodu virüs tehlikesinden ve dosyaların bozulmasından uzak ortamlarda çalışabilir.

Yüksek Performans

Java’nın hızının C++’ın hızı ile yarışması beklenmektedir.

Multi-Threaded

Basit bir Java Programı, birbirinden bağımsız olarak ve sürekli çalışan bir çok işleme sahip olabilir.

Server Üzerine Az Yük

Yüksek CPU gücü gerektiren WWW uygulamaları (CGI temelli programlar) Web Serverlarını aşırı yüklerler, ama Java temelli uygulamalarda CPU gücü gerektiren hesaplamalar uç bilgisayarda yapıldığı için böyle bir sorun yaratmaz.

Java’nın kullanılması için üç şeye ihtiyaç vardır. Bunlar: java desteği olan bir WWW göz gezdiricisi, kaynak kodu byte koda çeviren Java derleyicisi ve programların çalışmasını sağlayan Java İnterpreterdir. Bunların dışındaki araçlar kullanılması zorunlu olmayan ancak çalışmaları kolaylaştıran araçlardır. ( Çağıltay,1999 )

Java tümüyle nesneye dayalı olarak tasarlanmış bir programlama dilidir. Oluşturulmasındaki temel gaye ortamdan bağımsız, her bilgisayarda çalışabilecek programlar geliştirebilmektir. Özellikle İnternet gibi farklı mimarilere ve işletim sistemlerine sahip bilgisayarlardan oluşan ağ ortamlarında böyle bir gereksinim vardır.

Derlenmiş Java Programları, “byte code” adı verilen özel bir formata sahiptirler. Bu formatın işlemci tarafından doğrudan yürütülebilecek makine kodundan farkı bu kodun Java yorumlayıcısı tarafından çalıştırılabilmesidir. Yorumlayıcı yardımıyla çalıştırılabilir olması çalıştırılabilir olması Java’yı ortamdan bağımsız kılmaktadır. Her ortam için ayrı bir Java yorumlayıcısı mevcuttur ve bu yorumlayıcılar Java kodunu o ortama uygun makine koduna dönüştürür.(Grup Java,2000)

Java uygulamaları, WEB hizmeti aracılığıyla sunucu makinalardan istemci makinalara aktarılabilmekte ve Java desteği olan WEB tarayıcıları tarafından çalıştırılabilmektedir. Böylece, WEB tarayıcısı olan her bilgisayar Internet üzerinde herhangi bir web sunucusu altında bulunan Java uygulamasını çalıştırabilmektedir. Bu yöntemle yazılacak istemci/sunucu programlarında istemcide standart bir WEB tarayıcısının olması yeterlidir. WEB tarayıcısına sunucuya ait URL bilgisi girildiğinde Java kodu kendiliğinden çalıştırılmaktadır. Böylece uygulama programlarında bir değişiklik yapılması gerektiğinde değişikliğin sadece sunucu bilgisayarda yapılması  yeterli olacaktır.

Java’yı tasarlayanlar C++’dan büyük ölçüde etkilenmişlerdir. Bu etkilenme Java’nın sentaksında da kendini göstermektedir. Ancak iki dil arasında çok temel bazı farklar vardır. Bunların dışında Java’nın tümüyle nesneye dayanması gelmektedir. C++ nesne tabanlı modellemeyi desteklemekle beraber uzantısı olduğu C dilini desteklediği için melez bir yapıdadır.(Grup Java,2000)

Java Programları çalıştırılma şekillerine göre 2’ye ayrılır:

  • Applet
  • Application (Uygulama)

Java Appletleri  WEB tarayıcıları üzerinden yüklenerek çalışırlar. Sunucu bilgisayardan istemciye yüklenerek çalıştırıldıklarından istemci bilgisayarın kaynaklarına erişimleri sınırlandırılmıştır. İstemcinin sabit diskine, yazıcısına... v.s. erişemezler. Bu sınırlama güvenlik nedeniyle oluşturulmuştur.

Java uygulamaları bağımsız olarak çalışan programlardır. Çalıştırılabilmeleri niçin yerel diske önceden yüklenmiş olmaları gerekir. Buna karşılık Java uygulamaları için hiçbir güvenlik sınırlandırılması yoktur, tüm kaynaklara erişebilirler.

 

3.1 Javanın Bazı Özellikleri

  • Platformdan bağımsız olmasını sağlayan run-time kütüphaneleri sayesinde Windows, Unix ve Macintosh ortamında aynı kod kullanılabilmektedir. Bu özellikle internet programlarında gereklidir.
  • Java’nın sentaksı C++’nın sentaksına benzemektedir.
  • Java tamanlamıyla nesneye dayalı bir programlama dilidir. Java’da herşey, sadece bazı temel tipler haricinde, nesne olarak tanımlanır.
  • C++’ya göre daha kolay hata düzeltilebilir bir dildir. Çünkü Java dili tasarlanırken C++’da sık sık hataya sebep olan durumlar belirlenip, ona göre bu hatalara yer vermeyen bir dil oluşturulmuştur. Java’nın C++’ya farklarından önemlileri aşağıda verilmiştir:
  • Programcının bellekten yer ayırma (memory allocation) ve geri verme (deallocation) işlemleri yapmasına gerek yoktur. Java’nın önemli bir özelliği olarak bellek otomatikman geri verilir. Bu özelliğe “Garbage Collection” denir. Programcı bellek kaybını düşünmekten kurtulur.
  • İşaretçi aritmetiği ortadan kaldırılmıştır; gerçek diziler üzerinde işlemyapılamsı sağlanmıştır.
  • Atama işlemi ile koşullardaki test işlemi arasındaki karışıklık ortadan kaldırılmıştır. Bu C/C++’da önemli bir sorundu. Java’da programcı

                 İf (index=3)... şeklinde bir komut giremez.

  • Çoklu miras alma (multiple inheritence) kaldırılmıştır, onun yerine “İnterface” olarak adlandırılan yeni bir yapı tanıtılmıştır.(Keskinkılıç,1999)

3.1.1 Java platformdan bağımsızdır

Java’nın en önemli özelliği platformdan bağımsız olamasıdır. Bu özellikle değişik sistemlerde kullanılması gereken programların yazımında büyük kolaylık sağlar.

 

3.1.1.1 Platform bağımsızlığı

Bir programın bir bilgisayar sisteminden başka bir bilgisayar sistemine aktarılmasıdır. Kaynak sayesinde Java’nın ilkel veri tipleri bütün plarformlara uygun niteliktedir. Java’nın temel sınıf kütüphaneleri, yazılan herhangi bir programın bir paltformdan diğerine tekrar yazmaya gerek kalmadan taşınmasını mümkün kılar. Platform bağımsızlığı sadece kaynak seviyesinde kalmaz.Java ikilik dosyaları da, her platformda tekrar derlemeye gerek duyulmadan çalışır. Bu dosyaların diğer bir adı da Bayt Kod dosyalarıdır.(Grup Java,2000)

 

3.1.1.2 Bayt kodları

Bayt kodları makine kodlarına benzeyen fakat işlemciye özel olmayan kodlardır. Normal olarak C veya herhangi başka bir dilde program yazıldığında derleyici önce yazılım kontrolü yapar, sonra makrolar, kütüphanelerdeki alt programlar çağırılır ve en son olarak ta işlemciye özel kod üretilir. Yazdığımız program örneğin, IBM bilgisayarlar için olan bir derleyici kullanılarak derlenmişse bu program APPLE bilgisayarlarda çalışmayacaktır. Eğer programımızın APPLE bilgisayarlarda da çalışmasını istiyorsak APPLE bilgisayarlar için kullanılabilen bir derleyici programımızı yeniden derlememiz gerekecektir. Java’da ise herşey çok daha farklıdır. Java ortamında program geliştirme iki farklı adımda olur(Grup Java,2000)

·         Java Derleyicisi

·         Java Yorumlayıcısı

Java derleyicisi yazılmış herhangi bir Java programını derledikten sonra işlemciye özel makine kodları üretmek yerine bayt kod dosyası oluşturacaktır.

Programı çalıştırmak içinse bayt kod yorumlayıcısı çalıştırılır ve bu program Java’da yazılmış  programı yürütür. Yorumlayıcı ya kullanıcı tarafından çalıştırılır; ya da Hotjava web gezgininde olduğu gibi Java’nın içine yerleştirilmiş bir bayt kod yorumlayıcısı appletleri çalıştırır.

Bayt kod üretimi ve buna bağlı olarak programın çalıştırılması sırasında yorumlayıcı kullanımı ilk bakışta dezavantajlı gibi görülebilir. Fakat, programın bayt kod olarak saklanması, platformdan bağımsız olmasını da sağlar.

Böylelikle program herhangi bir donanıma sahip herhangi bir işletim sisteminde çalışabilir yeter ki çalıştırılacak işletim sisteminin Java yorumlayıcısı olsun. Bu özellik appletlerin istenildiği gibi çalıştırılması açısından kritiktir. Bilindiği gibi WWW paltformdan bağımsızdır. HTML de yazılmış dosyaların aksine, Java uygulamaları sadece Java desteğine, yani Java yorumlayıcısına sahip programlarca çalıştırılabilir.

Java’nın dezavantajı bayt kod, dolayısıyla yorumlayıcı kullanımı sonucu programın işletim hızının düşmesidir. Çünkü sisteme özel şekilde derlenmiş programların doğrudan ilgili donanım üzerinde çalışmalarının aksine Java’da yazılmış programla donanım arasında yorumlayıcı vardır. Çoğu Java programı içinde işletim hızı zaten kritik değildir. İşletim hızının kritik olduğu durumlarda  ya Java kullanılmaz veya Java kullanımı zorunluysa Java için yazılmış birtakım programların yardımıyla donanıma özel kod üretimi yani derleme yapılır. Fakat,  böyle bir programda, platformdan bağımsız olarak çalışabilme özelliğini kaybeder.(Grup Java,2000)

 

3.1.2 Java nesneye dayalı bir dildir

Nesneye dayalı bir dilde çalışmak bu tekniğin getirdiği tüm olanakların, esnek ve modüler programlama kolaylıklarının kullanımını sağlar.

Java’daki nesneye dayalı bir çok özellikte, C++ baz alınmıştır. Fakat, bazı özellikler ise diğer nesneye dayalı dillerden alınmıştır. Diğer bir çok nesneye dayalı dilde olduğu gibi Java da temel veri tiplerini, sistem giriş çıkış fonksiyonlarını ve bazı diğer fonksiyonları içeren sınıf kütüphanesine sahiptir.

Bu fonksiyonlarda Java ortamının ayrılmaz birer parçasıdırlar. Java yanı zamanda Internet protokollerinin çoğunu destekleyen fonksiyonlara da sahiptir.

Java kütüphanesi de Java’da oluşturulduğundan kütüphane içindeki fonksiyonlar da platformdan bağımsızdırlar.

Taşınabilirliğin ve nesneye dayalı olmasının yanında Java’nın tasarımındaki asıl amaç basit olmasıdır. Dolayısıyla daha kolay program yazmak, derlemek ve en önemlisi çok kolay öğrenmek hedef alınmıştır.

Java’nın çok fazla komut içermemesi güç bulunabilecek hataların olama olasılığını azaltır. Fakat uygun komutlardan oluşan bir dil olması sayesinde de Java güçlü bir dil sayılır.

Java C ve özellikle C++ dillerini baz almış olsa da bu dillerde mevcut olan güç kavramlar Java’da yoktur. Örneğin Java’da pointer ve buna bağlı olarak pointer aritmetiği yoktur. Stringler ve diziler nesne olarak tanımlanmışlardır.ayrıca bellek yönetimi de otomatik olarak yapılır.(Grup Java,2000)

Bu özelliklerin kalkması sayesinde Java çoğu programcı için kolay bir dildir.

3.2 Javaya Erişim

Java’da program yazılması için Sun şirketinin Java geliştirme kitine (JDK) ihtiyaç vardır. JDK Sun SPARC ortamı için Solaris 2.3 veya üstü Windows NT veya Windows 95-98 platformları için mevcuttur.

Burada JDK baz alınmıştır. JDK’ nın en son versiyonu Sun şirketinin http://www.javasoft.com/products/jdk/  sayfalarından kopyalanabilir.

Şekil 3.1 Javasoft.com

İnternet Explorer veya Java’yı destekleyen diğer web gezginleri Java’da yazılmış veya Java’yı destekleyen diğer web gezginleri Java’da yazılmış programların çalışmasını sağlarlar.

3.2.1 Java development kit

JAVA çalışma ortamı için bilgisayarınıza JAVA’yı önceden yüklemeniz gerekir. Java’yı geliştiren Sun Microsystem firmasına İnternet aracılığıyla ulaşılabilir ve JDK’ yı  ağ üzerinden makinenize yükleyebilirsiniz. Ağ tarayıcı programınız ile http://java.sun.com/ adresine ulaşın.  

 Şekil 3.2 www.sun.com

İlk web sayfasının alt bölümlerindeki hotjava news yazısı kliklenince yeni bir web sayfası ekranda beliriyor.

Şekil 3.3 www.javasoft.com/products/hotjavaviews/

Sun Microsystems’in bu web sayfası üzerinde download (ağdan yükle) seçeneği kliklenince yeni bir web sayfası ekranda belirir.bu web sayfası üzerinde JDK’yı bulun ve bilgisayarınıza yükleyin. Yükleme işlemine başlamadan önce karşı tarafa hangi işletim sistemini kullandığınızı bildirmeniz gerekir. Örneğin Windows 95  kullanıyorsanız, Microsoft Windows NT and Windows 95 seçeneğini kliklemelisiniz.

Yüklenilen dosya sıkıştırılmış olduğundan açılımından sonra bilgisayarınızın hard diski üzerinde çeşitli çalışma alanları oluşacaktır.

C:\java

C:\java\Bin

C:\Java\Demo

C:\Java\İnclude

C:\Java\Src

C:\Java\Bin direktory’si içinde en önemli dosyalar bulunmaktadır. Bunların arasında BASIC gibi bir interpreter olan Java.exe, Java’nın derleyicisi (Compiler) olan Javac.exe ve Appletviewer.exe bulunacaktır.

Bilgisayarınızın Autoexe.bat dosyası içindeki PATH komutunu güncelleştirmeniz gereklidir. Yapılması gereken değişiklikler:

PATH=%PATH%+C:\JAVA\BİN

Set HOME=C:\ şeklindedir.

Bu işlemler tamamlandıktan sonra JAVA çalışmalarınızı yapmaya hazırsınız. Java örneklerimizden birkaçını çalıştıralım:

CD\JAVA\Demo\MoleculeViewer

Appletviewer example1.html

İkinci komut satırından sonra sistem WİNDOWS’a geri dönecek,  ve aşağıda ki pencere açılacaktır.

Şekil 3.4 CD\JAVA\Demo\MoleculeViewer

Appletviewer example1.html

Appletviewer example2.html

Komutlarını yazarsak şu görüntüyü  elde ederiz:

 

Şekil 3.5 CD\JAVA\Demo\MoleculeViewer

            Appletviewer example2.html

 

3.3 Java İle Neler Yapılabilir?

En iyi bilinen Java programı Java Appletlerdir. Applet, Java’yı destekleyen herhangi bir web gezgininde çalışabilen Java programıdır. Appletlerle sadece hoş görünümlü animasyonlar hazırlamakla kalmazsınız, aynı zamanda genel kullanım amacı ile yüksek seviyeli bir programlama dili olduğundan güçlü yazılımlar da geliştirebilirsiniz. Java API’ lerini kullanarak çok zengin programlar yazılabilir.

Java uygulamarı doğrudan, Java platformlarında tek başına çalışabilen programlardır. Uygulamaların en belirgini ise sunucu uygulamalarıdır. Servlet’ler  ise appletlere benzeyen uygulamaların bir çeşididir. Servletler web gezgininde çalışmak yerine java sunucularını konfigüre eder ve uyarlarlar.

Java API’ leri tüm bu programları, yazılım bileşenleri olarak içeren paketler ile destekler. Core API (öz uygulama ara yüzleri), Java platformu uygulamaları için gerekn tüm API leri içerir. Core API aşağıdaki özellikleri sunar. (Grup Java,2000)

  • Temelleri : Nesneler, katarlar, dallar, sayılar, girişler, çıkışlar, veri yapıları, sistem özellikleri, zaman ve tarih gibi.
  • Appletler : Java Appletleri tarafından kullanılan sınıflar bileşenidir.
  • Ağ (Network) : URL, TCP ve UDP soketleri ile IP adresleri desteği verir.
  • Güvenlik : Alt ve üst seviyenin her ikisi, elektronik işaretler, public/private  anahtar yöntemi, erişim kontrolü ve sertifikalar.
  • Yazılımı Bileşenleri : Java bean olarak bilinir. Varolan bileşen mimarisine eklenir. (Microsoft’un OLE/COM/Active-X mimarisi, OpenDoc, ve netscape’in canlı bağlantısı gibi.)

·         Nesne Sıralaması : Remote Method Invocation (RMI) ile iletişime izin verir.

·         Java Veri tabanı Ağlantısı : (JDBC) İlişkisel veri tabanlarına erişimi sağlar.

Java sadece core API’lerden oluşmamıştır. Aynı zamanda standart uzantıları da vardır. (3D, sunucu, telefonlaşma, konuşma, animasyon vs. Desteği gibi )