Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar

Java




GİRİŞ

S1 : Java Nedir?

Java, birbirinden farklı aygıtlarda çalışabilen, bu aygıtlar arasında iletişimi kolay hale getiren programlama dili ve platformudur. Java diliyle yazılmış programlar, Windows, UNIX, Mac işletim sistemi yüklü bilgisayarlarda hiç bir değişiklik yapmayı gerektirmeden çalışabilmektedirler. Masaüstü bilgisayarlar için 'standart' sürümünün dışında, el cihazları için 'micro', server network'leri için 'enterprise' sürümleri bulunmaktadır. Micro sürüm, yazılan programların farklı cep telefonlarında ve diğer el cihazlarında çalıştırılabilir olmasını sağlamaktadır. Enterprise sürümü farklı işletim sistemleri yanısıra farklı veritabanalrı ve diğer server programlarıyla standart şekilde çalışmasını sağlamaktadır.

S2 : Niye Java öğreneyim?

Yazılım alanındaki en son gelişmeleri içerdiği için Java iyi bir programlama dilidir. Bu yüzden bu dil ve platform giderek yaygınlaşmaktadır. Bir araştırmaya göre üniversitelerin %80'i programala dili olarak Java'yı öğretmektedir. %50'sinde bu dil zorunlu ders olarak konulmuştur. Rakipleri C/C++ ve Pascal bu alanda gerilemektedir

S3 : Java'ya başlamanın en kolay yolu nedir?

JDK'yı (Java Development Kit'i) veya bunu içeren herhangi bir programalama ortamını kurmak gerekir. Bir kitap ve çeşitli belgelerden program yazma öğrenilebilir. Bütün bunları bulabileceğiniz bir çok İnternet sitesi vardır. Java'nın resmi sitesi java.sun.com'da da bunlar bulunmaktadır. Bu sitede Java'yla ilgili her türlü kaynak bulunmaktadır. Java Tutorial iyi bir başlangıç olabilir.

S4 : Hangi Java kitabını almalıyım?

Aslında bu kişiden kişiye göre değişir. Örneklerle öğrenmeyi seven biriyle her şeyin mantığını önce anlayarak öğrenmeye çalışanların tercihi farklı olacaktır. Çabuk görülebilir program yapmak isteyenlerle, 'iyi' programcı olmaya çalışanların da tercihi farklı olacaktır. Türkiye'de bulunabilen yabancı yazarlara ait hemen hemen bütün kitaplar iyi kitaplardır. Ancak yeni başlayanlar, özellikle programalaya da yeni başlayanlar için giriş niteliğindeki kitaplar bile biraz 'ağır' gelebilir. Tükrçe kitaplar arasında burada önerebileceğimiz herhangi bir isim bulunmamaktadır.

 

KAVRAMLAR

S5 : Object, Class ve Instace ne demek?

Object, içerisinde veri ve fonskiyon barındıran yapıdır. Veri tutan birimler 'property', belli bir işlev gören birimlere de 'method' denir. Bir insanın boyu bir property dir ve yürümek bir method'dur. Bir nesnede ne gibi property ve methodlar olacağını belirleyen yapıya class denir. Bu class'a uygun olarak yaratılan nesneye de instance denir. 'Web Sitesi' bir class'dır, 'godoro.com' bunun bir instance'dır. İnsan bir class'tır, Remzi de bunun bir instance'ı.

S6 : Object-Oriented Programming ne demek?

Gerçek hayattaki nesneleri ve kavramları belirtmek için kullanılır. Object-Oriented Programlama'da programcının öncelikle yapması gereken belli bir programı yapmak için gerekli nesneleri belirlemek ve bunlar arasındaki ilişkileri tanımlamaktır. Bir şirketle ilgili program yapılırken, örneğin, Department, Employee, Manager, Customer, Supplier gibi class'lar yapılır. Bunlara gerçek hayattaki karşılıklarına uygun olarak işlevler eklenir.

S7 : Inhertiance ne demek?

Bir nesnenin başka bir nesnenin özel olması ve ondaki bütün özellekileri içerimesini sağlayan yapı. Manager, örneğin, Employee'nin özel bir halidir. Çünkü her manager aynı zamanda bir Employee'dir. Sigorta işlemelri örneğin her ikisininde de olduğu için, manager için ayrı bir işlem yapmaya gerek yoktur.

S8 : Encapsulation ne demek?

Bir nesnenin bazı özellik ve işlevlerini diğerlerinden saklanabilmesi, erişimin sınırlandırılabilmesidir. Encapsulation'u televizyonun kasası olmasına benzetebiliriz. Bazı düğmeler ortada ('public') dururuken bir çok parça kasanın içerisinde gizildir (private). Zaten bir kullanıcının bunları kullanması gerekmez hatta dokunmaması gerekir. Aynı şekilde bir nesnenin kendinde bulunan bileşenleri kötü niyetli veya bilinçis kullanımlardan gizlemesi gerekir. Encapsulation programcıya nesneleri koruma gücünü verir.

S9 : Polymorphism ne demek?

Birbirine benzer nesnelere, aralarındaki farklarl ilgilenmeden aynı şekilde erişebilmektir. Her aygıtın bir on/of düğmesi vardır. "Aç" düğmesine basılınca açılır, "Kapa" düğmesine basılınca kapanır. Ama her aygıtın açılması ve kapanma süreçleri farklıdır. Ancak kullancı bunlarla ilgilenmez. Bu kavramın porgramlama dillerindeki nesnenlere uygulanmış hali polymorphism'dir.

 

TERİMLER

S10 : Applet nedir?

Applet, bir tarayıcı içerisinde çalışan program parçasıdır. Bir web sayfasında bir image veya tablo gibi belli bir dikdörtgen içerisinde çalışır ve programalamayla yapıbilecek bir çok işlemi gerçekleştirebilir. İndirildiği makineye bağlanıp veri alış verişinde bulunabilir, kullanıcıyla etkileşimli olarak çalışabilir.

S11 : JavaBean'i nedir?

Belli bir standarda göre yazılmış nesnedir. Örneğin xxx adlı bir veriyi değiştiren method setXxx(), erişim sağlayan method'da getXxx() şeklinde yazıılır. Teknik olarak bir nesnenin bean olması default (parametresiz) bir constructor'u olması ve serializable (dosyaya veya başka bir stream'a yazılıp oklunabilmesi) gerekir.

S12 : Servlet ve JSP nedir?

Sunucularda belli bir application server içerisinde çalışan programlardır. Tıpkı client'ta appletlerin çalışması gibi.Tipik olarak servlet'lere HTTP üzerinden erişilir. Servlet'ler çıktı olarak HTML üretir. JSP ise, bir Java kodunun HTML kodu içerisinde gömülmesini sağlayan yapıdır. JSP sayfası statik bir HTML sayfası gibidir sadece belli yerlerde Java kodu bulunur. (ASP ve PHP gibi.)

 

S13 : JavaScript'le Java'nın ne farkı var?

Java çok amaçlı, kullanım alanı oldukça geniş bir programlama dilidir. JavaScript ise web sayfaları veya benzeri markup dilleriyle ilgili olarak form paramterelerinin girilmesi gibi sayfa içerisinde programlamaya benzer bazı işlemleri yapılabimesini sağlayan script dilidir. Aralarında sintaks benzerliği bulunmaktadır. Ayrıca bazı ortamlarda birlikte çalışmaktadırlar. Şu anda iki dil birbiriyle daha önce oldukları kadar ilişkili değildir.

 

Cep telefonlarına yem!

 

Java sayesinde, işletim sistemlerinden bağımsız, değişik cep telefonu modelleri için ilave programlar geliştirmek mümkün.

Cep telefonları sistem mimarisinde ufak bilgisayarlara benzeseler de, üreticiler değişik işletim sistemleri kullanmayı tercih ediyorlar.

Nokia Series 60 telefonlarında ve Sony-Ericcson P800/P900 Smartphone'larında Symbian işletim sistemini kullanıyorlar. Diğer üreticiler kendi sistemlerini kullanmayı tercih ediyorlar. Bilgisayar dünyasında tekel statüsüne ulaşan Microsoft, Smartphone 2003 sistemiyle, bilgisayarda yakaladığı başarıyı cep telefon sektöründe de tekrarlamak istiyor. Görüyoruz ki cep telefonların işletim sistemleri hayli karışık. Ama diğer yandan üreticilerin, GSM şirketlerinin ve özellikle kullanıcıların ortak bir beklentisi var: üreticiden ve telefon modelinden bağımsız yazılım ve uygulamalar! (oyunlar, şebeke hizmetleri, program, vs.)

Cep telefonları için tek yazılım

 

Sorunun çözümü Java'dır. Sun şirketi tarafından geliştirilen Java teknolojisi yıllardır bilgisayar sektöründe, donanımdan bağımsız, internet uygulamalarının çalışmasını sağlamaktadır. Tabii ki bilgisayarlar ve sunucular için geliştirilen Java sürümü cep telefonlarının hem donanımını hem de yazılımını aşırı şekilde zorlar. Bu nedenle Sun şirketi üreticilerle beraber cep telefonların, avuç içi bilgisayarların ve Smartphone'ların kapasitesine göre Java versiyonları geliştirdi.

İhtiyaca göre verim

Donanımın işlem hızına göre değişik Java versiyonları kullanılıyor.

Sıradan cep telefonlarda Mobile Information Device Profile (MIDP) kullanılıyor. MIDP cep telefonları için üretilen Java programlarına belirli standart program kesiş noktaları sunuyor. Bunların üzerinden bir Java uygulaması ekranda yazı ve grafik gösterme, ses çalma, kullanıcı girişleri, veri alma ve gönderme gibi birçok fonksiyonu çalıştırabiliyor.
İlk çıkan telefonlarda MIDP 1.0 kullanılırken, yeni çıkan telefonların çoğu MIDP 2.0 kullanmaktadır. Standardın geliştirilmiş 2.0 sürümü daha gelişmiş görüntü, ses ve güvenlik fonksiyonları sunuyor, ayrıca oyunların görüntüsü ve performansı da daha iyi. İlave olarak 2.0 sürümünde video çalar gibi çoklu ortam uygulamalarını yüklemek de mümkün.

Büyükler için

Cep telefonları ve basit avuç içi bilgisayarlarda MIDP kullanılırken, gelişmiş avuç içi bilgisayarlarda ve Smartphone'larda Java 2 Micro Edition (J2ME) kullanılıyor. Bu versiyon çok daha gelişmiş fonksiyonlar sunuyor ve geniş sayıda ilave paketlerle geliştirilebiliyor.

MIDP profilinin yerini J2ME'de, en derin Java program seviyesinde bile, gelişmiş ağ ve yönetim fonksiyonları sunan "Foundation Profile" (FP) alıyor. Kullanıcı arayüzü olmayan donanımda bile bu programın kendi başına çalışması mümkün!


Smartphone'larda ve avuç içi bilgisayarlarda "Personal Profile (PP - Kişisel Profil)" veya bunun hafifletilmiş versiyonu "Personal Basis Profile (PBP - Basit Kişisel Profil)" yazı ve grafik gibi giriş ve alım fonksiyonlarını desteklemektedir.

 

Java Sun microsystems muhendislerinden James Gosling tarafindan gelistirilmeye baslanmis gercek nesneye yonelik, platform bagimsiz, yuksek performansli, cok islevli, yuksek seviye, interpreted[adim adim isletilen] bir dildir (son ozellik, yani adim adim isletilen konusuna aciklik getirilecek).

 

Java ilk ciktiginda daha cok kucuk cihazlarda kullanilmak icin tasarlanmis ortak bir platform dili olarak dusunulmus. Ancak bakmislar ki platform bagimsizligi ozelligi C ve C++'tan cok daha ustun ve guvenli bir yazilim gelistirme ve isletme ortami sunuyor, hemen her yerde kullanilmaya baslanmis. Su anda ozellikle kurumsal alanda ve mobil cihazlarda son derece populer olan java, ozellikle J2SE 1.4 ve gelecek 1.5 surumu ile masautunde de gucunu arttirmayi hedefliyor. Java'nin ilk surumu olan Java 1.0 (1995) Java Platform 1 olarak adlandirildi ve tasarlama amacina uygun olarak kucuk boyutlu ve kisitli ozelliklere sahipti. Daha sonra platformun gucu gozlendi ve tasariminda buyuk degisiklikler ve eklemeler yapildi. Bu buyuk degisikliklerden dolayi gelistirilen yeni platforma Java Paltform 2 adi verildi ama versiyon numarasi 2 yapilmadi, 1.2 olarak devam etti. Bu bahar cikacak Java 1.5, gecen 1.2, 1.3 ve 1.4 surumlerinin ardindan en cok gelisme ve degisikligi barindiran surum olacak.

 

Java nasil calisir?

Bir java yazilimi su sekilde gelistirilir:

  •  Programci java kodunu yazar.
  • Bu kod bir java derleyicisi ile derlenir. Sonucta bytekod adi verilen bir tur makine kodu ortaya cikar. Platform bagimsizligini saglayan sey bytecode'dir. Cunku bir kere bytecode olustuktan sonra yazilim tum isletim sistemlerinde calisabilir.
  • Bu byte kod Java virtual Machine (Java Sanal Makinesi) tarafindan adim adim isletilir. Asagida java ve C++ kodunun gecirdigi asamalar gosterilmistir.
  •  

     java1

     

    Simdi bu adimlari iyice bir inceleyelim

    Java kodunun yazilmasi.

    java nesneye yonelik bir dil oldugundan tum yazilim siniflar ve nesneler uzerinden yurutulur. Siniflar uygulamadaki nesnelerin tanimlandigi kod parcalaridir. Java'da her bir sinif bir dosya icerisinde yer alir. Dosyalarin uzantilari .java seklindedir. Dosya adi ise icinde tanimlanan sinif ile aynidir. Ornegin, BenimSinif.java gibi.

    Derleme

    Derleyici kisaca herhangi bir editor ile yazilan java kaynak kodlarini (yani .java uzantili siniflarin yer aldigi dosyalari) java sanal makinesinin calistirabilecegi bir tur makine dili (assembler) olan Bytecode'a donusturur. Bu donusturulen bytekod ise (.class ) dosyalari icerisinde saklanir. Java kodunu derlemek icin bir java derleyicisine ve java kutuphanelerine ihtiyaciniz var. Su anda iki derleyici yaygin olarak kullanilamktadir. Bir tanesi Sun'in SDK'si ile birlikte gelen javac. digeri ise IBM'in acik kodlu derleyicisi jikes. Benim yaygin olarak kullandigim Jikes, cok hizli derlemesi ile unlu olsa da en son java yazilimlarini derlemek icin javac'ye ihtiyac duyulabilir. Ayrica linux altinda derleme yapmak icin gnu lisansi ile gelistirilen acik kodlu Gnuj kullanilabilir. Derleyici ve kutuphanelerin bulundugu (Java API) uygulamaya "J2SE SDK" adi verilmistir.

    Calistirma ve Java sanal makinesi.

    Sanal makine donanimdan bagimsiz yazilim gelistirme ihtiyacina cevap verme amaciyla gelistirilen bir teknolojidir. Java'nin temel felsefesi olan "bir kere yaz, her yerde calistir" sanal makine sayesinde varolmustur. Sanal makineyi bir yonden bir tur hayali bir mikroislemci gibi dusunebiliriz. Gercek tum mikroislemciler (Intel Pentium, AMD Athlon, Sun Sparc vs) belirli bir grup komutu islemek uzere tasarlanmistir. Bu komutlara islemcinin komut kumesi adi verilir. Ornegin x86 komut kumesi gibi. Tum yazilimlar calisabilmek icin once bu komut kumesine donusturulur, daha sonra islemci bu komutlari sira ile gercek islemci komutlarina donusturup isletir. Java Sanal makinesi de Bytekod komut kumesini tipki islemci gibi adim adim isletir. Java'nin interpreted bir dil olarak adlandirilmasinin nedeni budur. Bytekod ilkel islemlerin yaninda (ilkel islemler, mikroislemci seviyesi komutlardir, aritmetik islemler, bit islemleri, bellek ve yigin islemleri vs.) sanal makinenin uzerinde calistigi isletim sistemine yonelik islemler de barindirir. Bu sayede Java Virtual Machine yazici, seri port, grafik, dosya servisi, ag baglantisi gibi yazilim ve donanim servislerine erisim yapabilir.

     

    Java'nin dogrudan bytecode calistirmasi performansinin dusuk olabilecegi izlenimini verebilir. Ancak, JVM tasarimi gecen 10 yilda cok degismis ve gelistirilmistir. Su anda java'nin performansi cogu alanda C++'in performansina yakin bir seviyededir ve islemci hizi ve bellek miktarinin her gecen yil katlanarak artmasi ile performans konusu cogu uygulamada artik ikinci planda kalmistir. Asagida cesitli platformlar icin java'nin calismasi basit blok sema olarak gosterilmistir. Eger sozkonusu dil C++ olsayid uc ayri kod yada kodda uc ayri #ifdef vs tanimi, uc ayri obje dosyasi olusturulmasi gerekirdi ve cogu uygulamada C++ projesi sadece tek platforma destek verirdi (win32 gibi).

     

    java2

     

    Java ile ilgili yazilarda karsilasabileceginiz bazi kavramlar:

    Hot Spot teknolojisi:

    Java sanal makinesi HotSpot adi verilen ozel bir teknolojiyi icinde barindirir. HotSpot yani sicak nokta , bir yazilimda surekli olarak tekrarlanan ve uzerinden gecilen kod bolumlerine verilen bir isimdir. Java sanal makinesi bir kod calismaya basladiktan sonra sIklikla kullanilan kod bloklarini gozler ve bir sure sonra bu bytecode bloklarinin calisilan sistemdeki gercek islemci komut karsiliklarini bir tur cep bellege yazar ve zaman ilerledikce artik byte kod uzerinden degil dogrudan sistemin oz komutlarini kullanarak yazilimin o bolumlerini isletmeye baslar. Bu sekilde ciddi performans avantaji saglanmistir.

    JIT

    Java ilk ciktiginda bytecode isletme hizi cok iyi degildi. yerine gore sistemin oz yazilimlarindan 5-10 kat yavas calisiyordu. Bu nedenle bazi yazilim gelistirme sirketleri JIT yani Just-in-time compile, "aninda derleme" araclari uretmeye basladilar. Yapilan sey byte kodu sanal makinenin kurulu oldugu gercek sistemin diline aninda derleme yaparak donusturmesiydi. Bu sayede performansta ciddi artislar saglandi. Ama 2000 yilindan sonra HotSpot teknolojisinin gelismesi ile JIT'in islevi VM'icinde yer almaya baslamis, islemci hizi ve bellek miktarinin dramatik bicimde artmasi ile dis JIT yazilimlari populerligini kaybetmistir. Bugun halen bir kac urun pazarda bulunsa da genellikle bu yondeki ihtiyac yok olmus gibi gozukmektedir.

    Java API

    JAva API, yava yazilimlarinda kullanilian yazilim kutuphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ag, veri tabani, guvenlik gibi yuzlerce konuda kullanicilara erisim imkani sunulur. Java API J2SDK'nin bir parcasidir.

    Cop toplayici (Garbage Collector)

    Cop toplayici java'nin en belirgin ozelliklerinden birisidir. C++, C gibi dillerin en buyuk handikaplarindan birisi dinamik bellek yonetimidir. yazilimda isaretci (pointer) kullanarak dinamik olarak bellek ayirdiktan sonra o bellek ile isiniz bittiginde mutlaka ayrilan bellegi bellek yoneticiye ozel metodlar yardimiyla (delete, destructor vs.) iade etmeniz gerekir. Yoksa bellek sizintisi (Memory Leak) olusur ve bu bir sure sonra yazilimin ve isletim sisteminin beklenenden farkli davranmasina yol acar. Bugunun tum buyuk C ve C++ yazilimlari az da olsa bellek sizintisi icerir (isletim sistemleri dahil). sizintilarin tespiti oldukca guctur ve bulunmasi zor hatalara yol acar. Cop toplayici sayesinde Java'da bir nesne olusturulduktan sonra o nesne ile isiniz bittiginde hic bir sey yapmaniz gerekmez. Sanal makine akilli bir bicimde kullanilmayan bellek bolumlerini belirli araliklarla ya da adaptif metodlarla sisteme otomatik olarak temizler ve sisteme iade eder. Bu isleme Cop toplama, ya da garbage collection adi verilir. Cop toplama sistemlerinin yapisi oldukca karmasiktir ve gecen yillar icinde buyuk gelismeler kaydedilmistir. Cop toplayicinin varligi java'da bellk sizintisi olmayacagi anlamina gelmez, ama bellek sizintilari daha ender olarak ve farkli sekillerde karsiniza cikar ve genellikle tedavi edilmesi daha kolaydir. Sun'in cop toplayicisi hakkinda detayli bilgi icin suraya, IBM'inki icin şuraya bakabilirisniz

    Jar

    : Jar, aslinda bir tur sIkistirma formatidir. Jar ile derlenen java kodlari ile olusan yzilimin paketlenip tasinmasi kolay bir hale getirilir. Jar dosyalari temelde bytekod bloklari icerir. Jar dosyalari genellikle kutuphane olusturmada ya da uygun bicimde hazirlanirsa isletim sisteminden dogrudan calistirilabiliecek bir sekilde kullanilabilir (Executable jar, isletilebilir jar) jar dosyalarinin icerigini sIkisitrma yazilimlari ya da java yazilim gelistirme araclari ile inceleyebilirsiniz. Java 1.5 ile yeni bir tur jar olusturma metodu da kullanima girecek. Pack200 adi verilen hiper-compression algoritmasi ile jar dosyalari 8 kata varan oranlarda daha az yer kaplayacak. Bunun ozellikle uzak uygulamalarin kullanimini ciddi bicimde kolaylastirmasi bekleniyor.

    AWT ve Swing

    AWT, ilk java ile birlikte gelistirilen temel grafik arayuz olusturma kutuphanesine verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin yetersiz gorulmus ve cok daha genis ve gelismis ozelliklere sahip Swing kutuhanesi sisteme eklenmistir. Ozellikle cok platform destekleyen yazilimlarda kullanici arayuzu gelistirme araci olarak swing halen onemini korumaktadir. Swing, onceleri isletim sisteminin kullandigi donanim grafik hizlandirma araclarini kullanmadigindan yavasligi ile elestirilere hedef olmustu. Ozellikle Java 1.4 ile Swing, hem genel olarak sanal makinenin hizlanmasi ve kismen donanim hizlandirmayi kullanmasi ile bu kotu sohretinden siyrilmaya basladi. Java 1.5 ile donanim, ozellikle OpenGL kullanimi ve yeni arayuz gosterim sekli ile java'nin masaustu uygulama gelistirmede populerlesmesi bekleniyor. AWT halen swingin bir alt katmaninda, temel 2 boyutlu grafik islemlerinde kullanilmaya devam ediyor.

    SWT

    SWT swing'e bir alternatif olarak IBM tarafindan gelistirilen bir gosterim sistemidir. Swing'den en buyuk farki calistigi isletim sistminin grafik kutuphanesi ve komutlarini kullanmasidir. Bu nedenle SWT uygulamalari Swing'e gore cogu yerde daha hizli ve isletim sistemindeki diger uygulamalari andiran bir sekilde calismasini saglar. Ancak yapi itibari ile SWT kullanimi Swing kadar efektif olamayabiliyor (ozellikle olay mekanizmasi, tablo ve agac yapilarindaki yavasligi, ayrica linux performansi ile SWT elestirilmistir.) Swingin Java 1.5 ile performans acigini kapatacagi iddia edilse de SWT'nin de artik java camiasinda kabul gormus bir sistem oldugu asikardir. SWT'nin dezavantaji ise java'nin bir parcasi olmamasidir. yani SWT uygulamalari SWT kutuphanesi ile birlikte dagitilmaktadir. En bilinen SWT uygulamasi unlu java yazilim gelistirme araci Eclipse'tir. Bununla birlikte son yillarda Swing ile profesyonel derecede arayuza sahip masaustu yazilimlari da ortaya cikmistir. Sonucta hersey yazilimcinin araci ne kadar efektif kullandigina bakiyor.

    Applet

    Applet, uzaktaki sistem uzerinden indirilip internet tarayici uzerinde calistirilabilien java uygulamalarina verilen isimdir. Java'nin son kullanicilar tarafindan taninmasi applet sayesinde olmustur dersek yanlis olmaz herhalde. Applet'ler sisteme zarar veremeyecek bir sekilde tasarlanmistir ve bugun ozellikle oyun sitelerinde halen yaygin olarak kullanilmaktadir. Icerisinde applet olan bir sayfayi acmaya calistiginizda tarayiciniz otomatik olarak java sanal makinesini calistirip ekranin applet'e ayrilan bolumunde uygulamanin calismasini saglar.

    WebStart

    Webstart teknolojisi Windows ve Linux sistemlerinin bas belasi olan uygulama kurulum, guncelleme ve silme dertlerine deva olmak uzere tasarlanmis bir sistemdir. Ozellikle Java 1.5 ile daha yaygin kullanilmaya baslayacagi tahmin edilen webstart teknolojisi kisaca yazilimlarin uzaktan yerel sisteme guvenli olarak kurulmasini ve korumali bir alanda calistirilmasini saglar. Appletlerin bir sonraki adimi olarak gorulebilir. Bir webstart uygulamasini kurmak icin internet uzerindeki ozel bir baglantiya tiklamak yeterli. Sistem otomatik olarak webstart sistemini calistirip yazilimi java cep bellegine indirir. isterseniz masaustune kisayol koymasini da saglar. Daha sonra sistem off-line ya da on-line olsa bile uygulama calistirilabilir, ve uzaktaki yazilim guncellendiginde otomatik olara -istenirse- yerel makinedeki yazilimin da guncelenmesi saglanabilir. Kullanicinin ozel olarak izin vermesi halinde uygulama yerel sisteme erisim hakki kazanabilir. Aksi taktirde webstart uygulamalari sisteme yazma islemi gerceklestiremezler (yani virus ve zararli yazilim tehlikesini son derece aza indirger.)

     

    Java hangi dilde yazildi?

     

     

    Javanin cekirdek kismi yani sanal makinenin C++ ve belki bazi yerlerde dogrudan assembler kullanilarak yazildigini saniyorum.. Bu hukmu java bug sayfalarindaki ornek kodlara bakarak verdim.. Java kutuphanelerinin buyuk kismi ise java ile yazilmistir.

     

    Java Her yerde kullanilabilir mi?

     

     

    Hayir, java, ozellikle donanim surucusu gelistirme, isletim sistemi seviyesi yazilimlar, bazi ozel grafik yazilimlari, yuksek hizli 3 boyultu grafikli oyunlarda kullanmak icin uygun degildir. JAva 1.5 ve sonraki surumlerde openGL destegi ile 3 boyutlu oyun uygulamalarinda daha fazla kullanilmasi umuluyor.

    Neden java?

    Bu soruya kisisel olarak cevap verecegim, şu nedenleri gosterebilirim:

     

  • En onemlisi platform bagimsiz. her hangi bir yerde yazdigim yazilimi tek satir bile degistirmeden tum isletim sistemlerinde ve donanimlarda calistirabiliyorum. Bu ozelligi .Net'i benim icin safdisi ediyor.
  • Guvenli kod yazimi. Pointer kullanimi, bellek sizintilari, #ifdef satirlari, karmasik derleme sistemleri, isletim sistemi hatta derleyici bagimli kutuphanelerden bikmis birisi olarak java'yi gunumuzdeki haliyle C, C++'a bin kere tercih ederim.
  • Nesneye yonelik. Bir kere alistiktan ve kavradiktan sonra bir daha terkedemeyeceginiz nesneye yonelik yazilim gelistirmenin guzel bir gerceklemesidir. Bu nedenle kriptik anlasilmaz script dilleri, hem ondan hem bundan diyen C++ gibi hibrit dilleri ve C gibi alt seviye bir iskence aletine karsi java'yi tercih ediyorum 
  •  Yuksek performans. script dilleri geri dursun.
  • Basitlik: az komut sayisi ve konulara cogunlukla ayni yonden yazilmasi ile ogrenilmesi C++ ve C#'a gore kolay oldugundan tercih ediyorum.
  • Secenek: Birden fazla sanal makine, SDK ve uygulama sunucu gelistirici sayesinde tek gelistiriciye bagimli degilim. Java'nin gelistirilmesi her ne kadar Sun'in denetiminde yapilsa da JCP adi verilen bir organizasyon ile diger sirketler de java'nin gelistirilmesine dogudan katkida bulunmaktadir. Ayrica java'yi karmasik bulanlar daha kolay anlasilabilir BeanShell, Jython, Rubby, Groovy gibi JVM uzerinde calisabilecek script dillerini kullanabilir.
  • Gelistirme ortamlari: Java ile yazilim gelistirebileceginiz ticari ya da bedava ve acik son derece guclu ve cok sayida yazilim gelistirme ortamlari mevcut. Ustelik tum platformlarda.
  • Olgunluk. Java gecen on yilda havanda iyice dovulerek olgun bir hale geldi. Su andacesitli java surumleri bankalar, askeri sistemler hatta uzay araclarinda kullanilmaya uygun olarak gorulmektedir. Kurumsal alandaki uygulamalarin buyuk cogunda JAva tercih edilmektedir. .Net'in bu asamaya gelmesi icin daha kirk firin ekmek yemesi gerekir ve genellikle ciddi bir yatirimcinin zaman kaybina tahammulu yoktur. 
  •  Acik kod: java ile gerceklestirilen acik kodlu proje ve framework sayisi on binlerle ifade ediliyor. hemen her ticari uygulamanin bir acik kodlu karsiligini bulmaniz mumkun.
  • Destek, Java su anda IBM, Oracle, Sun, Bea gibi dev sirketler tarafindan desteklenmektedir. Bu sirketlerin hic birisi .Net yoluna gideceklerine dair en ufak bir isaret vermemislerdir. O nedenle java'nin gelecegini aydinlik olarak goruyorum.
  • Eger iyi derecede java ve yazilim gelistirme bilirseniz iyi ve ciddi bir is bulma sansiniz diger dillerden daha yuksektir.
  •  

    Kaynaklar:

    Ahmet A. Akın

    http://www.cepbul.com

    http://www.godoro.com


    Bu makale hakkında ek bilgi eklemek için buraya tıklayınız

    Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

    Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
    Eklenme tarihi: 30-4-2007  Okunma: 4607

    Ekleyen:  hasan günal

    Bu Makaleye Verilen Puan:    Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar Makaleye verilen puanlar
    Bu Makaleye Puan Ver  

    Bölüm Başlık Kullanıcı Yorumları


    Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
    Reklam Netinternet
    Bazı hakları saklıdır: İçeriğin editör ve yazarlarımız tarafından oluşturulan kısımları ve site tasarımının hakkı saklıdır.  Bu sayfa en iyi 1280x1024 ve 1024x768 çözünürlükte izlenir.
    Powered by BilgiPortal v2.2
    Emlak Yorumlar Müzik estetik