SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
II
ÖZET
Bu çalıĢmada, günümüzün en popüler programlama dili olarak
kabul edilen java dilinin ortaya çıkıĢından günümüzdeki halini alıncaya
kadar izlediği yolu en iyi Ģekilde incelemeye çalıĢırken, java dilinin
yapısını, java dilini diğer dillerden ayıran özelliği de en iyi Ģekilde
anlatmaya çalıĢtık.
Java dilini anlatırken, tek kaynağa bağlı kalmayıp, birçok internet
sitesi ve java adına yazılmıĢ olan rapor ve tezleri inceleyerek, en
doğruyu bilgiyi en iyi Ģekilde aktarmaya çalıĢtık. Faydalı bir çalıĢma
olması dileği ile…
MUHAMMET ÇAĞATAY
Anahtar kelimeler: Programlama Dili Olarak Java, Java Dilini Tanıyalım,
Nedir Bu Java? , Java Sanal Makinesi Nedir?
DANIŞMAN
Yrd. Doç. Dr. MUSTAFA ÇAĞATAY TUFAN
SAMSUN – 2011
III
İÇİNDEKİLER
1. NEDİR BU JAVA? .......................................................................................... 1
1.1. Java Nedir?........................................................................................................... 1
1.2. Java Dilinin Ortaya ÇıkıĢı.................................................................................... 1
1.3. Niçin Java ismi?................................................................................................... 2
2. JAVA NASIL ÇALIŞIR?................................................................................... 2
2.1. Java Kodunun Yazılması..................................................................................... 3
2.2. Java Kodunun Derlenmesi.................................................................................. 3
2.3. ÇalıĢtırma ve Java Sanal Makinesi...................................................................... 4
3. JAVA İLE İLGİLİ YAZILARDA KARSILAŞABİLECEĞİNİZ BAZI
KAVRAMLAR…………………………………………………………….….. 4
3.1. Java Hot Spot teknolojisi...................................................................................... 4
3.2. JIT........................................................................................................................ 4
3.3. Java API............................................................................................................... 5
3.4 Cop toplayıcı (Garbage Collector)…………………………………………..…. 5
3.5 Jar…………………………………………………………………………..……5
3.6 AWT ve Swing…………………………………………………………..…….. 5
3.7 SWT………………………………………………………………………..……6
3.8 Applet……………………………………………………………………..…….6
4. JAVA PROGRAMLAMA DİLİNİNÖZELLİKLERİ………………..…..… 6
4.1. Java Her Ortamda ÇalıĢabilir............................................................................. 6
4.2. Java Basittir......................................................................................................... 7
4.3. Java Nesne Tabanlıdır....................................................................................... 7
4.4. Java Güvenlidir.................................................................................................. 7
4.5. Java Yüksek Performanslıdır............................................................................. 7
5. KAYNAKLAR………………………………………………………………… 8
RESİMLER DİZİNİ
Sayfa No
IV
Resim 1.1. Sun Microsystems firmasının logosu
1
Resim 1.2. James Gosling 1
Resim 1.3. Java Logosu 2
Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları 3
SEMBOLLER DİZİNİ
AMD Advenced Micro Devices (Bir İşlemci Markası)
GB Garbage Collector (Çöp Toplayıcı)
JDK Java Development Kit
JIT Just Ġn Time (Olay Anı)
JNI Java Yerel Arayüzü (Java Native Interface)
JVM Java Sanal Makinesi (Java Virtual Machine)
MAC Macintosh (Apple Şirketinin Ürettiği Bir Bilgisayar)
OS Operating Ssytem (İşletim Sistemi)
SM Sun Microsystem (Java Dilini Geliştiren Firma)
1
1. NEDİR BU JAVA?
1.1. Java Nedir?
Java Sun Microsystems firması tarafından geliĢtirilmiĢ olan üst seviye bir
programlama dilidir. Ġlk adı OAK olan Java aslında bilgisayarlar için değil, set üstü araçlar
(WEB TV gibi) veya avuç içi cihazlar (PDA'ler gibi) için hazırlanmıĢtı. OAK 1995 yılında
baĢarısız olunca, Sun firması bu programlama dilinin adını Java olarak değiĢtirdi ve Internet
üzerinde popüler bir programlama dili haline getirmeye çalıĢtı.
Resim 1.1. Sun Microsystems firmasının logosu
Java, C++ dili gibi nesne yönelimli bir programlama dilidir ancak bu dile göre çok
daha sadeleĢtirilmiĢtir. Soyadı.java olan Java programlarının çalıĢtırılabilir hale getirildiğinde
soyadları.class olur ve Java desteği olan herhangi bir web tarayıcısı ile çalıĢtırılabilirler. Java
programları çalıĢtırıldığı iĢletim sisteminden hemen hemen bağımsızdır, çünkü bu programlar
için hemen hemen tüm platformlarda (UNIX, Macintosh OS ve Windows gibi) gerekli destek
verilmektedir.
1.2. Java Dilinin Ortaya Çıkışı
Resim 1.2. James Gosling
Adı “Green Project” olarak bilinen bir projenin içerisinde yer alan James Gosling,
proje için en uygun dilin belirlenmesi isini üstlenmiĢti. 1984'de Sun Microsystems'de göreve
baĢlayan Gosling, çalıĢmalarına C++ ile baĢlamıĢ ancak bu dilin proje için yeterli olmayacağı
düĢüncesiyle, yine bu dilin bir türevi olan ve ilk adı “Oak” olan yeni bir dili geliĢtirmeye
baĢlamıĢtı. Daha sonra yerel bir kefeden çağrıĢım yaparak bu dilin adını Java olarak
değiĢtirmiĢtir. O günlerden bu güne Java halen geliĢtirilmekte olan ve günümüzde popülaritesi
tartıĢılmaz olan bir dil olarak kullanılmaktadır.
2
1.3. Niçin Java İsmi?
Neden Java olmasın? Java ismi Web de insanların aklında hemen yerleĢebilecek bir
kelimenin arandığı beyin fırtınasında ortaya çıkmıĢtır. Ġlk olarak HotJava ve Java isimleri akla
gelmiĢtir. Daha Java ile ilgili her programa kahve isimleri verilmiĢtir. Bu yüzden ki Java’nın
sembolü kahvedir.
Resim 1.3. Java Logosu
2. JAVA NASIL ÇALIŞIR?
Bir Java yazılımı su şekilde geliştirilir:
1. Programcı Java kodunu yazar.
2. Bu kod bir Java derleyicisi ile derlenir. Sonuçta byte-kod adi verilen bir tur
makine kodu ortaya çıkar. Platform bağımsızlığını sağlayan Ģey byte-code'dir.
Çünkü bir kere byte-code oluĢtuktan sonra yazılım tüm iĢletim sistemlerinde
çalıĢabilir.
3. Bu byte kod 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.
3
Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları
2.1 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 seklindedir. Dosya adı ise içinde
tanımlanan sınıf ile aynidir. Örneğin; Benim Sınıf cagatay gibi.
2.2 Java Kodunun Derlenmesi
Derleyici kısaca herhangi bir editör ile yazılan Java kaynak kodlarını (yani Java uzantılı
sınıfların yer aldığı dosyaları) Java sanal makinesinin çalıĢtırabileceği bir tür makine dili
(assembler) olan Byte-code'a dönüĢtürür. Bu dönüĢtürülen byte kod 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'in SDK'si
ile birlikte gelen Java diğeri ise IBM'in açık kodlu derleyicisi jikes.
Jikes, çok hızlı derlemesi ile ünlü olsa da en son Java yazılımlarını derlemek için
javac'ye ihtiyaç duyulabilir. Ayrıca Linux altında derleme yapmak için gnu lisansı ile
geliĢtirilen açık kodlu Gnuj da kullanılabilir. Derleyici ve kütüphanelerin bulunduğu (Java
API) uygulamaya "J2SE SDK" adi verilmiĢtir.
4
2.3 Çalıştırma ve Java Sanal Makinesi
Sanal makine, 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 var olmuĢ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.
Örneğin 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 Byte-kod 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. Byte-kod 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 byte code çalıĢtırması performansının düĢük olabileceği izlenimini
verebilir. Ancak, JVM tasarımı geçen on yılda çok değiĢmiĢ ve geliĢtirilmiĢtir. ġu anda
Java’nın performansı çoğu alanda C++'in performansına yakin 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.
3. JAVA İLE İLGİLİ YAZILARDA KARŞILAŞABİLECEĞİNİZ
BAZI KAVRAMLAR
3.1 Hot Spot teknolojisi
Java sanal makinesi Hot Spot adı verilen özel bir teknolojiyi içinde barındırır. Hot
Spot yani sıcak nokta, bir yazılımda sürekli olarak tekrarlanan ve üzerinden geçilen kod
bölümlerine verilen bir isimdir. Java sanal makinesi bir kod çalıĢmaya baĢladıktan sonra
sıklıkla kullanılan kod bloklarını gözler. Bir süre sonra bu byte code bloklarının çalıĢılan
sistemdeki gerçek iĢlemci komut karĢılıklarını bir tür cep belleğe yazar ve zaman ilerledikçe
artık byte kod üzerinden değil doğrudan sistemin öz komutlarını kullanarak yazılımın o
bölümlerini isletmeye baslar. Bu Ģekilde ciddi performans avantajı sağlanmıĢtır.
3.2 JIT
Java ilk çıktığında byte code iĢletme hızı çok iyi değildi. Yerine göre sistemin öz
yazılımlarından 5–10 kat yavaĢ çalıĢıyordu. Bu nedenle bazı yazılım geliĢtirme Ģirketleri JIT
yani Just-in-time com pile, "anında derleme" araçları üretmeye baĢladılar. Yapılan Ģey byte
kodu sanal makinenin kurulu olduğu gerçek sistemin diline anında derleme yaparak
5
dönüĢtürmesiydi. Bu sayede performansta ciddi artıĢlar sağlandı. Ama 2000 yılından sonra
Hot Spot teknolojisinin geliĢmesi ile JIT'in iĢlevi VM' içinde yer almaya baĢlamıĢ, iĢlemci
hızı ve bellek miktarının dramatik biçimde artması ile dıĢ JIT yazılımları popülerliğini
kaybetmiĢtir. Bugün halen bir kaç ürün pazarda bulunsa da genellikle bu yöndeki ihtiyaç yok
olmuĢ gibi gözükmektedir.
3.3 Java API
Java API, java yazılımlarında kullanılan yazılım kütüphanelerine genel olarak verilen
isimdir. Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konuda kullanıcılara
eriĢim imkânı sunulur. Java API J2SDK'nin bir parçasıdır.
3.4 Çöp toplayıcı (Garbage Collector)
Çöp toplayıcı Java’nın en belirgin özelliklerinden birisidir. C++, C gibi dillerin en
büyük handikaplarından birisi dinamik bellek yönetimidir. Yazılımda iĢaretçi (pointer)
kullanarak dinamik olarak bellek ayırdıktan sonra o bellek ile isiniz bittiğinde mutlaka ayrılan
belleği bellek yöneticiye özel metotlar yardımıyla (delete, destructor vs.) iade etmeniz gerekir.
Yoksa bellek sızıntısı (Memory Leak) oluĢur ve bu bir sure sonra yazılımın ve iĢletim
sisteminin beklenenden farklı davranmasına yol acar. Bugünün tüm büyük C ve C++
yazılımları az da olsa bellek sızıntısı içerir (iĢletim sistemleri dâhil). Sızıntıların tespiti
oldukça güçtür ve bulunması zor hatalara yol açar. Çöp toplayıcı sayesinde Java'da bir nesne
oluĢturulduktan sonra o nesne ile isiniz bittiğinde hiç bir Ģey yapmanız gerekmez. Sanal
makine akilli bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da adaptif
metotlarla sisteme otomatik olarak temizler ve sisteme iade eder. Bu iĢleme Çöp toplama, ya
da Garbage collection adi verilir. Çöp toplama sistemlerinin yapısı oldukça karmaĢıktır ve
geçen yıllar içinde büyük geliĢmeler kaydedilmiĢtir. Çöp toplayıcının varlığı Java’da bellek
sızıntısı olmayacağı anlamına gelmez, ama bellek sızıntıları daha ender olarak ve farklı
Ģekillerde karĢınıza çıkar ve genellikle tedavi edilmesi daha kolaydır
3.5 Jar
Jar, aslında bir tür sıkıĢtırma formatıdır. Jar ile derlenen Java kodları ile oluĢan
yazılımın paketlenip taĢınması kolay bir hale getirilir. Jar dosyaları temelde bytekod blokları
içerir. Jar dosyaları genellikle kütüphane oluĢturmada ya da uygun bicimde hazırlanırsa
iĢletim sisteminden doğrudan çalıĢtırılabilecek bir Ģekilde kullanılabilir (Executable Jar,
isletilebilir jar) jar dosyalarının içeriğini sıkıĢtırma yazılımları ya da Java yazılım geliĢtirme
araçları ile inceleyebilirsiniz. Java 1.5 ile yeni bir tür jar oluĢturma metodu da kullanıma
girecek. Pack200 adı verilen hiper-compression algoritması ile jar dosyaları 8 kata varan
oranlarda daha az yer kaplayacak. Bunun özellikle uzak uygulamaların kullanımını ciddi
biçimde kolaylaĢtırması bekleniyor.
3.6 AWT ve Swing
AWT, ilk Java ile birlikte geliĢtirilen temel grafik ara yüz oluĢturma kütüphanesine
verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin yetersiz görülmüĢ ve çok daha
geniĢ ve geliĢmiĢ özelliklere sahip Swing Kütüphanesi sisteme eklenmiĢtir. Özellikle çok
platform destekleyen yazılımlarda kullanıcı ara yüzü geliĢtirme aracı olarak Swing halen
önemini korumaktadır. Swing, önceleri iĢletim sisteminin kullandığı donanım grafik
hızlandırma araçlarını kullanmadığından yavaĢlığı ile eleĢtirilere hedef olmuĢtu. Özellikle
6
Java 1.4 ile Swing, hem genel olarak sanal makinenin hızlanması ve kimsen donanım
hızlandırmayı kullanması ile bu kötü Ģöhretinden sıyrılmaya baĢladı. Java 1.5 ile donanım,
özellikle OpenGL kullanımı ve yeni ara yüz gösterim Ģekli ile Java’nın masaüstü uygulama
geliĢtirmede popülerleĢmesi bekleniyor. AWT halen swingin bir alt katmanında, temel 2
boyutlu grafik iĢlemlerinde kullanılmaya devam ediyor.
3.7 SWT
SWT swing'e bir alternatif olarak IBM tarafından geliĢtirilen bir gösterim sistemidir.
Swing'den en büyük farkı çalıĢtığı iĢletim sisteminin grafik kütüphanesi ve komutlarını
kullanmasıdır. Bu nedenle SWT uygulamaları Swing'e göre çoğu yerde daha hızlı ve iĢletim
sistemindeki diğer uygulamaları andıran bir Ģekilde çalıĢmasını sağlar. Ancak yapı itibari ile
SWT kullanımı Swing kadar efektif olamayabiliyor (özellikle olay mekanizması, tablo ve
ağaç yapılarındaki yavaĢlığı, ayrıca Linux performansı ile SWT eleĢtirilmiĢtir.) Swing in Java
1.5 ile performans açığını kapatacağı iddia edilse de SWT'nin de artik Java camiasında kabul
görmüĢ bir sistem olduğu aĢikardır. SWT'nin dezavantajı ise Java’nın bir parçası olmamasıdır.
yani SWT uygulamaları SWT kütüphanesi ile birlikte dağıtılmaktadır. En bilinen SWT
uygulaması ünlü Java yazılım geliĢtirme aracı Eclipse' tir. Bununla birlikte son yıllarda Swing
ile profesyonel derecede ara yüze sahip masaüstü yazılımları da ortaya çıkmıĢtır. Sonuçta her
Ģey yazılımcının aracı ne kadar efektif kullandığına bakıyor.
3.8 Applet
Applet, uzaktaki sistem üzerinden indirilip internet tarayıcı üzerinde çalıĢtırılabilinen
Java uygulamalarına verilen isimdir. Java’nın son kullanıcılar tarafından tanınması applet
sayesinde olmuĢtur dersek yanlıĢ olmaz herhalde. Applet'ler sisteme zarar veremeyecek bir
Ģekilde tasarlanmıĢtır ve bugün özellikle oyun sitelerinde halen yaygın olarak
kullanılmaktadır. Ġçerisinde Applet olan bir sayfayı açmaya çalıĢtığınızda tarayıcınız otomatik
olarak Java sanal makinesini çalıĢtırıp ekranın applet'e ayrılan bölümünde uygulamanın
çalıĢmasını sağlar.
4. JAVA PROGRAMLAMA DİLİNİN ÖZELLİKLERİ
4.1 Java Her ortamda çalışabilir
Java teknolojisinin en önemli özelliği her ortamda, en küçük bilgisayarlardan süper
bilgisayarlara kadar, çalıĢabilmesidir. Java teknolojisi bileĢenleri nasıl bir bilgisayar, telefon,
televizyon veya iĢletim sistemi olduğuna bakmaksızın Java platformunu destekleyen her türlü
ortamda çalıĢır. Java teknolojisinin yaratılıĢ amacı daha önce hiç kolay olmadığı kadar kolay
bir Ģekilde bilgisayar ve diğer iletiĢim araçları arasında etkileĢim kurmaktır. Java ilk ortaya
çıktığında asıl amacı elektronik ev aletlerinin birbirleriyle iletiĢim kurabilmesini sağlamaktır.
Java hızlı bir Ģekilde geliĢerek bugün ki halini almıĢtır.
7
4.2 Java Basittir
Java ile program hazırlamak oldukça kolay ve zevklidir. Daha önce bir programlama
dili ile çalıĢmıĢ veya en az bir nesneye programlama dili ile çalıĢmak yeterlidir. Ayrıca Java
programlama dilinin C++ programlama diline olan benzerliği sebebiyle C++ programlama
dili çalıĢmıĢ olanlar için çok zevkli yeni bir deneyim olacaktır.
4.2 Java Nesne Tabanlıdır
Java nesne yönelimli bir programlama dilidir. Bir programlama dilinin nesne yönelimli
olması, dilin kendi özelliği itibariyle aynı amaca yönelik görevlerin sınıf (class) denilen
yapılar içerisinde toplanmasına ve bu prensibe göre kullanımına izin vermesidir. Nesne
yönelimli programcılığın birçok avantajı vardır. Bunlardan en önemlisi, bir projede
birbirinden bağımsız olarak tasarlanan sınıf nesneleri kullanılmasıdır. Böylece projeye belli
görevlerin eklenmesi veya çıkarılması projenin bütününe dokunmadan mümkün hale
gelebilmektedir.
4.3 Java Güvenlidir
Java programlama dili hazırlanan programlar bugün güveliğin çok önemli üst düzey
devlet kuruluĢlarında ve NASA da kullanılmaktadır. Java ile hazırlanan programlara virüslere
ve hacker’lara karĢı geliĢtirilen en güvenli programlar olarak düĢünülmektedir.
4.4 Java Yüksek Performanslıdır
Java ile hazırlanan programlar hızlı çalıĢmaları ve bilgisayara az yük getirmeleri
nedeniyle Ġnternet ve intranet uygulamalarında tercih edilmektedir.
8
6. KAYNAKLAR
1. Academytech_java_tr.pdf modülü
2. Zafer DĠNÇ “Java programlama dilinde veri tabanına bağlantı için
JDBODBC ara yüzü” isimli tezi
3. http://www.bilgiustam.com/java-nedir-nasil-calisir//print
4. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_programlar.
C4.B1_nas.C4.B1l_.C3.A7al.C4.B1.C5.9Ft.C4.B1r.C4.B1l.C4.B1r.3F
5. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_API
6. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#At.C4.B1k_veri_to
play.C4.B1c.C4.B1
7. http://www.1923turk.com/forumdisplay.php?f=30
8. http://www.javaturk.org/?cat=10
9. http://www.csharpnedir.com/
10.http://www.bilisimterimleri.com/bilgisayar_bilgisi/bolum/1.html
11.http://www.forumalev.net/diger-kodlama-dilleri/8833-java-nedir.html

Más contenido relacionado

La actualidad más candente

Communicative testing presentation
Communicative testing presentationCommunicative testing presentation
Communicative testing presentation
santoshector
 

La actualidad más candente (20)

Java program structure
Java program structure Java program structure
Java program structure
 
Core java course syllabus
Core java course syllabusCore java course syllabus
Core java course syllabus
 
Collections and generics
Collections and genericsCollections and generics
Collections and generics
 
Java History
Java HistoryJava History
Java History
 
Java Basics for selenium
Java Basics for seleniumJava Basics for selenium
Java Basics for selenium
 
Java modules
Java modulesJava modules
Java modules
 
Top 30 Java Phone Interview Questions Answers for Freshers, 1 to 2 Years Expe...
Top 30 Java Phone Interview Questions Answers for Freshers, 1 to 2 Years Expe...Top 30 Java Phone Interview Questions Answers for Freshers, 1 to 2 Years Expe...
Top 30 Java Phone Interview Questions Answers for Freshers, 1 to 2 Years Expe...
 
Features of java
Features of javaFeatures of java
Features of java
 
Java features
Java featuresJava features
Java features
 
Karate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made SimpleKarate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made Simple
 
History Of JAVA
History Of JAVAHistory Of JAVA
History Of JAVA
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Manual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testingManual testing - Introduction to Manual Software testing
Manual testing - Introduction to Manual Software testing
 
Testing speaking
Testing speakingTesting speaking
Testing speaking
 
What Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | EdurekaWhat Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
What Is Java | Java Tutorial | Java Programming | Learn Java | Edureka
 
Writing clean code in C# and .NET
Writing clean code in C# and .NETWriting clean code in C# and .NET
Writing clean code in C# and .NET
 
Test NG Framework Complete Walk Through
Test NG Framework Complete Walk ThroughTest NG Framework Complete Walk Through
Test NG Framework Complete Walk Through
 
Introduction to Java -unit-1
Introduction to Java -unit-1Introduction to Java -unit-1
Introduction to Java -unit-1
 
Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium Data driven Automation Framework with Selenium
Data driven Automation Framework with Selenium
 
Communicative testing presentation
Communicative testing presentationCommunicative testing presentation
Communicative testing presentation
 

Destacado

Destacado (8)

Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
 
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
Ankara JUG Eylül 2013 Etkinliği - Eclipse RCP 4
 
AnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFacesAnkaraJUG Kasım 2012 - PrimeFaces
AnkaraJUG Kasım 2012 - PrimeFaces
 
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAYTürkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
Türkiyede Bilişim Sektörü Alanları - Muhammet ÇAĞATAY
 
ASP.Net MVC ile Web Uygulamaları - 1(Giriş)
ASP.Net MVC ile Web Uygulamaları - 1(Giriş)ASP.Net MVC ile Web Uygulamaları - 1(Giriş)
ASP.Net MVC ile Web Uygulamaları - 1(Giriş)
 
AspNet MVC ile metin resim sifreleme (Steganography)
AspNet MVC ile metin resim sifreleme (Steganography)AspNet MVC ile metin resim sifreleme (Steganography)
AspNet MVC ile metin resim sifreleme (Steganography)
 
Eclipse
EclipseEclipse
Eclipse
 
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAYE ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
E ti̇caret Veri Güvenliği - SSL - Muhammet ÇAĞATAY
 

Similar a Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY

Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
Osman Kurt
 
Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol Haritası
Murat Can ALPAY
 

Similar a Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY (20)

JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Net beans nedir
Net beans nedirNet beans nedir
Net beans nedir
 
JavaScript Sunumu
JavaScript SunumuJavaScript Sunumu
JavaScript Sunumu
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 
Android
AndroidAndroid
Android
 
Bilgisayar Mühendisleri Odası - PrimeFaces Framework Semineri
Bilgisayar Mühendisleri Odası - PrimeFaces Framework SemineriBilgisayar Mühendisleri Odası - PrimeFaces Framework Semineri
Bilgisayar Mühendisleri Odası - PrimeFaces Framework Semineri
 
Android İşletim Sistemi
Android İşletim SistemiAndroid İşletim Sistemi
Android İşletim Sistemi
 
Java 1
Java 1Java 1
Java 1
 
Komut satırı JAVA
Komut satırı JAVAKomut satırı JAVA
Komut satırı JAVA
 
Osman kurt & zahide aytar
Osman kurt & zahide aytarOsman kurt & zahide aytar
Osman kurt & zahide aytar
 
Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1
 
Open Source Android Libraries
Open Source Android LibrariesOpen Source Android Libraries
Open Source Android Libraries
 
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
 
jQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları GeliştirmejQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları Geliştirme
 
Yahoo's Open! Web Developerları İçin..
Yahoo's Open!  Web Developerları İçin..Yahoo's Open!  Web Developerları İçin..
Yahoo's Open! Web Developerları İçin..
 
Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol Haritası
 
Mevlana Üniversitesi - JSF ve Primefaces UI
Mevlana Üniversitesi - JSF ve Primefaces UIMevlana Üniversitesi - JSF ve Primefaces UI
Mevlana Üniversitesi - JSF ve Primefaces UI
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 

Más de Muhammet ÇAĞATAY

C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYC# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
Muhammet ÇAĞATAY
 
5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY
Muhammet ÇAĞATAY
 

Más de Muhammet ÇAĞATAY (10)

Android Study Jam - Kotlin ile Temel Android Eğitimi
Android Study Jam - Kotlin ile Temel Android EğitimiAndroid Study Jam - Kotlin ile Temel Android Eğitimi
Android Study Jam - Kotlin ile Temel Android Eğitimi
 
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAYC# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
C# ve MS-SQL İLE TÜRKÇE METİNDEN KONUŞMA SENTEZLEME - MUHAMMET ÇAĞATAY
 
5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY5E Öğretim Modeli - Muhammet ÇAĞATAY
5E Öğretim Modeli - Muhammet ÇAĞATAY
 
Bool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAYBool cebiri - Muhammet ÇAĞATAY
Bool cebiri - Muhammet ÇAĞATAY
 
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAYÖzel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
Özel öğreti̇m yöntemleri̇ - Muhammet ÇAĞATAY
 
Android & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAYAndroid & Vr & CardBoard - Muhammet ÇAĞATAY
Android & Vr & CardBoard - Muhammet ÇAĞATAY
 
Lineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAYLineer programlama - Muhammet ÇAĞATAY
Lineer programlama - Muhammet ÇAĞATAY
 
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAYFraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
Fraktal Geometri - Kaos Oyunu - Muhammet ÇAĞATAY
 
Az ve Öz C++ Muhammet ÇAĞATAY
Az ve Öz C++  Muhammet ÇAĞATAYAz ve Öz C++  Muhammet ÇAĞATAY
Az ve Öz C++ Muhammet ÇAĞATAY
 
Az ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAYAz ve Öz Matlab - Muhammet ÇAĞATAY
Az ve Öz Matlab - Muhammet ÇAĞATAY
 

Programlama Dili Olarak JAVA - Muhammet ÇAĞATAY

  • 1.
  • 2. II ÖZET Bu çalıĢmada, günümüzün en popüler programlama dili olarak kabul edilen java dilinin ortaya çıkıĢından günümüzdeki halini alıncaya kadar izlediği yolu en iyi Ģekilde incelemeye çalıĢırken, java dilinin yapısını, java dilini diğer dillerden ayıran özelliği de en iyi Ģekilde anlatmaya çalıĢtık. Java dilini anlatırken, tek kaynağa bağlı kalmayıp, birçok internet sitesi ve java adına yazılmıĢ olan rapor ve tezleri inceleyerek, en doğruyu bilgiyi en iyi Ģekilde aktarmaya çalıĢtık. Faydalı bir çalıĢma olması dileği ile… MUHAMMET ÇAĞATAY Anahtar kelimeler: Programlama Dili Olarak Java, Java Dilini Tanıyalım, Nedir Bu Java? , Java Sanal Makinesi Nedir? DANIŞMAN Yrd. Doç. Dr. MUSTAFA ÇAĞATAY TUFAN SAMSUN – 2011
  • 3. III İÇİNDEKİLER 1. NEDİR BU JAVA? .......................................................................................... 1 1.1. Java Nedir?........................................................................................................... 1 1.2. Java Dilinin Ortaya ÇıkıĢı.................................................................................... 1 1.3. Niçin Java ismi?................................................................................................... 2 2. JAVA NASIL ÇALIŞIR?................................................................................... 2 2.1. Java Kodunun Yazılması..................................................................................... 3 2.2. Java Kodunun Derlenmesi.................................................................................. 3 2.3. ÇalıĢtırma ve Java Sanal Makinesi...................................................................... 4 3. JAVA İLE İLGİLİ YAZILARDA KARSILAŞABİLECEĞİNİZ BAZI KAVRAMLAR…………………………………………………………….….. 4 3.1. Java Hot Spot teknolojisi...................................................................................... 4 3.2. JIT........................................................................................................................ 4 3.3. Java API............................................................................................................... 5 3.4 Cop toplayıcı (Garbage Collector)…………………………………………..…. 5 3.5 Jar…………………………………………………………………………..……5 3.6 AWT ve Swing…………………………………………………………..…….. 5 3.7 SWT………………………………………………………………………..……6 3.8 Applet……………………………………………………………………..…….6 4. JAVA PROGRAMLAMA DİLİNİNÖZELLİKLERİ………………..…..… 6 4.1. Java Her Ortamda ÇalıĢabilir............................................................................. 6 4.2. Java Basittir......................................................................................................... 7 4.3. Java Nesne Tabanlıdır....................................................................................... 7 4.4. Java Güvenlidir.................................................................................................. 7 4.5. Java Yüksek Performanslıdır............................................................................. 7 5. KAYNAKLAR………………………………………………………………… 8 RESİMLER DİZİNİ Sayfa No
  • 4. IV Resim 1.1. Sun Microsystems firmasının logosu 1 Resim 1.2. James Gosling 1 Resim 1.3. Java Logosu 2 Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları 3 SEMBOLLER DİZİNİ AMD Advenced Micro Devices (Bir İşlemci Markası) GB Garbage Collector (Çöp Toplayıcı) JDK Java Development Kit JIT Just Ġn Time (Olay Anı) JNI Java Yerel Arayüzü (Java Native Interface) JVM Java Sanal Makinesi (Java Virtual Machine) MAC Macintosh (Apple Şirketinin Ürettiği Bir Bilgisayar) OS Operating Ssytem (İşletim Sistemi) SM Sun Microsystem (Java Dilini Geliştiren Firma)
  • 5. 1 1. NEDİR BU JAVA? 1.1. Java Nedir? Java Sun Microsystems firması tarafından geliĢtirilmiĢ olan üst seviye bir programlama dilidir. Ġlk adı OAK olan Java aslında bilgisayarlar için değil, set üstü araçlar (WEB TV gibi) veya avuç içi cihazlar (PDA'ler gibi) için hazırlanmıĢtı. OAK 1995 yılında baĢarısız olunca, Sun firması bu programlama dilinin adını Java olarak değiĢtirdi ve Internet üzerinde popüler bir programlama dili haline getirmeye çalıĢtı. Resim 1.1. Sun Microsystems firmasının logosu Java, C++ dili gibi nesne yönelimli bir programlama dilidir ancak bu dile göre çok daha sadeleĢtirilmiĢtir. Soyadı.java olan Java programlarının çalıĢtırılabilir hale getirildiğinde soyadları.class olur ve Java desteği olan herhangi bir web tarayıcısı ile çalıĢtırılabilirler. Java programları çalıĢtırıldığı iĢletim sisteminden hemen hemen bağımsızdır, çünkü bu programlar için hemen hemen tüm platformlarda (UNIX, Macintosh OS ve Windows gibi) gerekli destek verilmektedir. 1.2. Java Dilinin Ortaya Çıkışı Resim 1.2. James Gosling Adı “Green Project” olarak bilinen bir projenin içerisinde yer alan James Gosling, proje için en uygun dilin belirlenmesi isini üstlenmiĢti. 1984'de Sun Microsystems'de göreve baĢlayan Gosling, çalıĢmalarına C++ ile baĢlamıĢ ancak bu dilin proje için yeterli olmayacağı düĢüncesiyle, yine bu dilin bir türevi olan ve ilk adı “Oak” olan yeni bir dili geliĢtirmeye baĢlamıĢtı. Daha sonra yerel bir kefeden çağrıĢım yaparak bu dilin adını Java olarak değiĢtirmiĢtir. O günlerden bu güne Java halen geliĢtirilmekte olan ve günümüzde popülaritesi tartıĢılmaz olan bir dil olarak kullanılmaktadır.
  • 6. 2 1.3. Niçin Java İsmi? Neden Java olmasın? Java ismi Web de insanların aklında hemen yerleĢebilecek bir kelimenin arandığı beyin fırtınasında ortaya çıkmıĢtır. Ġlk olarak HotJava ve Java isimleri akla gelmiĢtir. Daha Java ile ilgili her programa kahve isimleri verilmiĢtir. Bu yüzden ki Java’nın sembolü kahvedir. Resim 1.3. Java Logosu 2. JAVA NASIL ÇALIŞIR? Bir Java yazılımı su şekilde geliştirilir: 1. Programcı Java kodunu yazar. 2. Bu kod bir Java derleyicisi ile derlenir. Sonuçta byte-kod adi verilen bir tur makine kodu ortaya çıkar. Platform bağımsızlığını sağlayan Ģey byte-code'dir. Çünkü bir kere byte-code oluĢtuktan sonra yazılım tüm iĢletim sistemlerinde çalıĢabilir. 3. Bu byte kod 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.
  • 7. 3 Resim 2.1. java ve c++ dillerinin derleme akıĢ diyagramları 2.1 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 seklindedir. Dosya adı ise içinde tanımlanan sınıf ile aynidir. Örneğin; Benim Sınıf cagatay gibi. 2.2 Java Kodunun Derlenmesi Derleyici kısaca herhangi bir editör ile yazılan Java kaynak kodlarını (yani Java uzantılı sınıfların yer aldığı dosyaları) Java sanal makinesinin çalıĢtırabileceği bir tür makine dili (assembler) olan Byte-code'a dönüĢtürür. Bu dönüĢtürülen byte kod 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'in SDK'si ile birlikte gelen Java diğeri ise IBM'in açık kodlu derleyicisi jikes. Jikes, çok hızlı derlemesi ile ünlü olsa da en son Java yazılımlarını derlemek için javac'ye ihtiyaç duyulabilir. Ayrıca Linux altında derleme yapmak için gnu lisansı ile geliĢtirilen açık kodlu Gnuj da kullanılabilir. Derleyici ve kütüphanelerin bulunduğu (Java API) uygulamaya "J2SE SDK" adi verilmiĢtir.
  • 8. 4 2.3 Çalıştırma ve Java Sanal Makinesi Sanal makine, 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 var olmuĢ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. Örneğin 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 Byte-kod 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. Byte-kod 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 byte code çalıĢtırması performansının düĢük olabileceği izlenimini verebilir. Ancak, JVM tasarımı geçen on yılda çok değiĢmiĢ ve geliĢtirilmiĢtir. ġu anda Java’nın performansı çoğu alanda C++'in performansına yakin 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. 3. JAVA İLE İLGİLİ YAZILARDA KARŞILAŞABİLECEĞİNİZ BAZI KAVRAMLAR 3.1 Hot Spot teknolojisi Java sanal makinesi Hot Spot adı verilen özel bir teknolojiyi içinde barındırır. Hot Spot yani sıcak nokta, bir yazılımda sürekli olarak tekrarlanan ve üzerinden geçilen kod bölümlerine verilen bir isimdir. Java sanal makinesi bir kod çalıĢmaya baĢladıktan sonra sıklıkla kullanılan kod bloklarını gözler. Bir süre sonra bu byte code bloklarının çalıĢılan sistemdeki gerçek iĢlemci komut karĢılıklarını bir tür cep belleğe yazar ve zaman ilerledikçe artık byte kod üzerinden değil doğrudan sistemin öz komutlarını kullanarak yazılımın o bölümlerini isletmeye baslar. Bu Ģekilde ciddi performans avantajı sağlanmıĢtır. 3.2 JIT Java ilk çıktığında byte code iĢletme hızı çok iyi değildi. Yerine göre sistemin öz yazılımlarından 5–10 kat yavaĢ çalıĢıyordu. Bu nedenle bazı yazılım geliĢtirme Ģirketleri JIT yani Just-in-time com pile, "anında derleme" araçları üretmeye baĢladılar. Yapılan Ģey byte kodu sanal makinenin kurulu olduğu gerçek sistemin diline anında derleme yaparak
  • 9. 5 dönüĢtürmesiydi. Bu sayede performansta ciddi artıĢlar sağlandı. Ama 2000 yılından sonra Hot Spot teknolojisinin geliĢmesi ile JIT'in iĢlevi VM' içinde yer almaya baĢlamıĢ, iĢlemci hızı ve bellek miktarının dramatik biçimde artması ile dıĢ JIT yazılımları popülerliğini kaybetmiĢtir. Bugün halen bir kaç ürün pazarda bulunsa da genellikle bu yöndeki ihtiyaç yok olmuĢ gibi gözükmektedir. 3.3 Java API Java API, java yazılımlarında kullanılan yazılım kütüphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konuda kullanıcılara eriĢim imkânı sunulur. Java API J2SDK'nin bir parçasıdır. 3.4 Çöp toplayıcı (Garbage Collector) Çöp toplayıcı Java’nın en belirgin özelliklerinden birisidir. C++, C gibi dillerin en büyük handikaplarından birisi dinamik bellek yönetimidir. Yazılımda iĢaretçi (pointer) kullanarak dinamik olarak bellek ayırdıktan sonra o bellek ile isiniz bittiğinde mutlaka ayrılan belleği bellek yöneticiye özel metotlar yardımıyla (delete, destructor vs.) iade etmeniz gerekir. Yoksa bellek sızıntısı (Memory Leak) oluĢur ve bu bir sure sonra yazılımın ve iĢletim sisteminin beklenenden farklı davranmasına yol acar. Bugünün tüm büyük C ve C++ yazılımları az da olsa bellek sızıntısı içerir (iĢletim sistemleri dâhil). Sızıntıların tespiti oldukça güçtür ve bulunması zor hatalara yol açar. Çöp toplayıcı sayesinde Java'da bir nesne oluĢturulduktan sonra o nesne ile isiniz bittiğinde hiç bir Ģey yapmanız gerekmez. Sanal makine akilli bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da adaptif metotlarla sisteme otomatik olarak temizler ve sisteme iade eder. Bu iĢleme Çöp toplama, ya da Garbage collection adi verilir. Çöp toplama sistemlerinin yapısı oldukça karmaĢıktır ve geçen yıllar içinde büyük geliĢmeler kaydedilmiĢtir. Çöp toplayıcının varlığı Java’da bellek sızıntısı olmayacağı anlamına gelmez, ama bellek sızıntıları daha ender olarak ve farklı Ģekillerde karĢınıza çıkar ve genellikle tedavi edilmesi daha kolaydır 3.5 Jar Jar, aslında bir tür sıkıĢtırma formatıdır. Jar ile derlenen Java kodları ile oluĢan yazılımın paketlenip taĢınması kolay bir hale getirilir. Jar dosyaları temelde bytekod blokları içerir. Jar dosyaları genellikle kütüphane oluĢturmada ya da uygun bicimde hazırlanırsa iĢletim sisteminden doğrudan çalıĢtırılabilecek bir Ģekilde kullanılabilir (Executable Jar, isletilebilir jar) jar dosyalarının içeriğini sıkıĢtırma yazılımları ya da Java yazılım geliĢtirme araçları ile inceleyebilirsiniz. Java 1.5 ile yeni bir tür jar oluĢturma metodu da kullanıma girecek. Pack200 adı verilen hiper-compression algoritması ile jar dosyaları 8 kata varan oranlarda daha az yer kaplayacak. Bunun özellikle uzak uygulamaların kullanımını ciddi biçimde kolaylaĢtırması bekleniyor. 3.6 AWT ve Swing AWT, ilk Java ile birlikte geliĢtirilen temel grafik ara yüz oluĢturma kütüphanesine verilen isimdir. Ancak Java 2 platformu ile birlikte AWT'nin yetersiz görülmüĢ ve çok daha geniĢ ve geliĢmiĢ özelliklere sahip Swing Kütüphanesi sisteme eklenmiĢtir. Özellikle çok platform destekleyen yazılımlarda kullanıcı ara yüzü geliĢtirme aracı olarak Swing halen önemini korumaktadır. Swing, önceleri iĢletim sisteminin kullandığı donanım grafik hızlandırma araçlarını kullanmadığından yavaĢlığı ile eleĢtirilere hedef olmuĢtu. Özellikle
  • 10. 6 Java 1.4 ile Swing, hem genel olarak sanal makinenin hızlanması ve kimsen donanım hızlandırmayı kullanması ile bu kötü Ģöhretinden sıyrılmaya baĢladı. Java 1.5 ile donanım, özellikle OpenGL kullanımı ve yeni ara yüz gösterim Ģekli ile Java’nın masaüstü uygulama geliĢtirmede popülerleĢmesi bekleniyor. AWT halen swingin bir alt katmanında, temel 2 boyutlu grafik iĢlemlerinde kullanılmaya devam ediyor. 3.7 SWT SWT swing'e bir alternatif olarak IBM tarafından geliĢtirilen bir gösterim sistemidir. Swing'den en büyük farkı çalıĢtığı iĢletim sisteminin grafik kütüphanesi ve komutlarını kullanmasıdır. Bu nedenle SWT uygulamaları Swing'e göre çoğu yerde daha hızlı ve iĢletim sistemindeki diğer uygulamaları andıran bir Ģekilde çalıĢmasını sağlar. Ancak yapı itibari ile SWT kullanımı Swing kadar efektif olamayabiliyor (özellikle olay mekanizması, tablo ve ağaç yapılarındaki yavaĢlığı, ayrıca Linux performansı ile SWT eleĢtirilmiĢtir.) Swing in Java 1.5 ile performans açığını kapatacağı iddia edilse de SWT'nin de artik Java camiasında kabul görmüĢ bir sistem olduğu aĢikardır. SWT'nin dezavantajı ise Java’nın bir parçası olmamasıdır. yani SWT uygulamaları SWT kütüphanesi ile birlikte dağıtılmaktadır. En bilinen SWT uygulaması ünlü Java yazılım geliĢtirme aracı Eclipse' tir. Bununla birlikte son yıllarda Swing ile profesyonel derecede ara yüze sahip masaüstü yazılımları da ortaya çıkmıĢtır. Sonuçta her Ģey yazılımcının aracı ne kadar efektif kullandığına bakıyor. 3.8 Applet Applet, uzaktaki sistem üzerinden indirilip internet tarayıcı üzerinde çalıĢtırılabilinen Java uygulamalarına verilen isimdir. Java’nın son kullanıcılar tarafından tanınması applet sayesinde olmuĢtur dersek yanlıĢ olmaz herhalde. Applet'ler sisteme zarar veremeyecek bir Ģekilde tasarlanmıĢtır ve bugün özellikle oyun sitelerinde halen yaygın olarak kullanılmaktadır. Ġçerisinde Applet olan bir sayfayı açmaya çalıĢtığınızda tarayıcınız otomatik olarak Java sanal makinesini çalıĢtırıp ekranın applet'e ayrılan bölümünde uygulamanın çalıĢmasını sağlar. 4. JAVA PROGRAMLAMA DİLİNİN ÖZELLİKLERİ 4.1 Java Her ortamda çalışabilir Java teknolojisinin en önemli özelliği her ortamda, en küçük bilgisayarlardan süper bilgisayarlara kadar, çalıĢabilmesidir. Java teknolojisi bileĢenleri nasıl bir bilgisayar, telefon, televizyon veya iĢletim sistemi olduğuna bakmaksızın Java platformunu destekleyen her türlü ortamda çalıĢır. Java teknolojisinin yaratılıĢ amacı daha önce hiç kolay olmadığı kadar kolay bir Ģekilde bilgisayar ve diğer iletiĢim araçları arasında etkileĢim kurmaktır. Java ilk ortaya çıktığında asıl amacı elektronik ev aletlerinin birbirleriyle iletiĢim kurabilmesini sağlamaktır. Java hızlı bir Ģekilde geliĢerek bugün ki halini almıĢtır.
  • 11. 7 4.2 Java Basittir Java ile program hazırlamak oldukça kolay ve zevklidir. Daha önce bir programlama dili ile çalıĢmıĢ veya en az bir nesneye programlama dili ile çalıĢmak yeterlidir. Ayrıca Java programlama dilinin C++ programlama diline olan benzerliği sebebiyle C++ programlama dili çalıĢmıĢ olanlar için çok zevkli yeni bir deneyim olacaktır. 4.2 Java Nesne Tabanlıdır Java nesne yönelimli bir programlama dilidir. Bir programlama dilinin nesne yönelimli olması, dilin kendi özelliği itibariyle aynı amaca yönelik görevlerin sınıf (class) denilen yapılar içerisinde toplanmasına ve bu prensibe göre kullanımına izin vermesidir. Nesne yönelimli programcılığın birçok avantajı vardır. Bunlardan en önemlisi, bir projede birbirinden bağımsız olarak tasarlanan sınıf nesneleri kullanılmasıdır. Böylece projeye belli görevlerin eklenmesi veya çıkarılması projenin bütününe dokunmadan mümkün hale gelebilmektedir. 4.3 Java Güvenlidir Java programlama dili hazırlanan programlar bugün güveliğin çok önemli üst düzey devlet kuruluĢlarında ve NASA da kullanılmaktadır. Java ile hazırlanan programlara virüslere ve hacker’lara karĢı geliĢtirilen en güvenli programlar olarak düĢünülmektedir. 4.4 Java Yüksek Performanslıdır Java ile hazırlanan programlar hızlı çalıĢmaları ve bilgisayara az yük getirmeleri nedeniyle Ġnternet ve intranet uygulamalarında tercih edilmektedir.
  • 12. 8 6. KAYNAKLAR 1. Academytech_java_tr.pdf modülü 2. Zafer DĠNÇ “Java programlama dilinde veri tabanına bağlantı için JDBODBC ara yüzü” isimli tezi 3. http://www.bilgiustam.com/java-nedir-nasil-calisir//print 4. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_programlar. C4.B1_nas.C4.B1l_.C3.A7al.C4.B1.C5.9Ft.C4.B1r.C4.B1l.C4.B1r.3F 5. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#Java_API 6. http://tr.wikipedia.org/wiki/Java_(programlama_dili)#At.C4.B1k_veri_to play.C4.B1c.C4.B1 7. http://www.1923turk.com/forumdisplay.php?f=30 8. http://www.javaturk.org/?cat=10 9. http://www.csharpnedir.com/ 10.http://www.bilisimterimleri.com/bilgisayar_bilgisi/bolum/1.html 11.http://www.forumalev.net/diger-kodlama-dilleri/8833-java-nedir.html