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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!