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
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