06.03.2015 Views

Java Kitabı

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

almıĢsanız sorun ortaya çıksa bile, uygulama için sorun olmaz ama gerçek dünyada her Ģeyi öngörebilmek<br />

imkansızdır. ()<br />

<strong>Java</strong> programlama dili, oluĢabilecek hatalara karĢı sert bir yaptırım uygular. Dikkat edin, oluĢabilecek<br />

diyorum. <strong>Java</strong> programlama dili, ortada hata oluĢmasına sebebiyet verebilecek bir durum var ise yazılan<br />

<strong>Java</strong> dosyasını derlemeyerek (compile) kodu yazan kiĢiye gerekli sert tavrı gösterir. <strong>Java</strong> programlama<br />

dilinin bu tavrı doğru mudur? Kimileriniz diyebilir ki, "<strong>Java</strong> sadece üstüne düĢen görevi yapsın,<br />

oluĢabilecek hataları bana söyleyerek canımı sıkmasın". Bu yaklaĢım yanlıĢtır, <strong>Java</strong> programlama dilinin<br />

amacı kodu yazan kiĢiye maksimum Ģekilde yardımcı olmaktır, daha doğrusu insana dayalı oluĢabilecek<br />

hataları kendi üstüne alıp, hatalı uygulama üretimini minimuma indirgemeyi amaçlayarak tasarlanmıĢtır.<br />

Bunun ilk örneğini çöp toplama (garbage collector) mekanizmasında görmüĢtük. Diğer dillerde oluĢturulan<br />

nesnelerin, daha sonradan iĢleri bitince bellekten silinmemelerinden dolayı bellek yetmezlikleri<br />

oluĢmaktadır. " Kodu yazan insan, oluĢturduğu nesneyi bellekten temizlemez mi? Ben bunu Ģahsen hiç<br />

yapmam. O zaman dalgın insanlar kod yazmasın aaa! " diye bir söz sakın demeyin, çünkü insanoğlu yeri<br />

geldiğinde çok dalgın olabilir ve bu dalgınlık uygulamayı bir bellek canavarına dönüĢtürebilir ayrıca bu tür<br />

hataları, uygulamanın içerisinden ayıklamak cidden çok zor bir iĢtir. Bu yüzden <strong>Java</strong> programlama dilinde,<br />

bir nesnenin bellekten silinmesi kodu yazan kiĢiye göre değil, çöp toplama algoritmalarına göre yapılır<br />

(bkz:Bölüm3). <strong>Java</strong>‘nın oluĢabilecek olan hatalara karĢı bu sert tutumu da gayet mantıklıdır. Bu sert tutum<br />

sayesinde ileride oluĢabilecek ve bulunması çok güç olan hataların erkenden engellenmesini sağlar. ()<br />

8.1.1. İstisna Nasıl Oluşabilir?<br />

Ġstisna oluĢumuna en basit örnek olarak, yanlıĢ kullanılmıĢ dizi uygulamasını verebiliriz. <strong>Java</strong> programlama<br />

dilinde dizilere eriĢim her zaman kontrollüdür. Bunun anlamı, <strong>Java</strong> programlama dilinde dizilerin içerisine<br />

bir eleman atmak istiyorsak veya var olan bir elemana ulaĢmak istiyorsak, bu iĢlemlerin hepsi <strong>Java</strong><br />

tarafından önce bir kontrolden geçirilir. Bunun bir avantajı, bir de dezavantajı vardır. Avantaj olarak<br />

güvenli bir dizi eriĢim mekanizmasına sahip oluruz, dezavantaj olarak ufakta olsa hız kaybı meydana gelir.<br />

Fakat böyle bir durumda hız mı daha önemlidir yoksa güvenlik mi? Bu sorunun cevabı <strong>Java</strong> programlama<br />

dili için güvenliktir. AĢağıdaki örneğe dikkat edelim; ()<br />

Örnek: DiziErisim.java ()<br />

public class DiziErisim {<br />

public static void main(String args[]) {<br />

}<br />

}<br />

int sayilar[] = {1, 2, 3, 4};<br />

System.out.println("Basla");<br />

for (int i=0 ; i < 5 ; i++) {<br />

System.out.println("--> " + sayilar[i]);<br />

}<br />

System.out.println("Bitti");<br />

sayilar[], ilkel (primitive) int tipinde dizi değiĢkenidir ve bağlı bulunduğu dizi nesnesinin içerisinde 4<br />

adet int tipinde eleman vardır. for döngüsü sayesinde dizi içerisindeki elemanları ekrana bastırmaktayız.<br />

Bu örneğimizdeki hata, for döngüsünün fazla dönmesiyle dizinin olmayan elemanına ulaĢmak<br />

istememizden kaynaklanmaktadır. Böyle bir hareket, çalıĢma-anında (run-time) hata oluĢmasına sebebiyet<br />

verip uygulamamızın aniden sonlanmasına sebebiyet verecektir. Uygulamayı çalıĢtırıp, sonuçları hep<br />

beraber görelim. ()<br />

Basla<br />

203

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!