İleri Programlama Dersi 2. Ünite Sorularla Öğrenelim
Java Programlama Diline Giriş
- Özet
- Sorularla Öğrenelim
Java programlama dili nasıl ortaya çıkmıştır?
Sun Microsystems mühendisi James Gosling tarafından 1991 yılında ilk olarak elektrikli ev aletlerinin birbiriyle haberleşmesini sağlamak amacıyla bir proje olarak geliştirilmiştir. Orijinal adı bu dilin yaratıcıları James Gosling ve arkadaşları tarafından OAK olarak isimlendirilmiştir. Daha sonra bir kafede, bu isimde başka bir programlama dili olduğu fark eden Gosling ve arkadaşları, o anda içtikleri kahve markasından esinlenerek programlama dilinin adını Java olarak değiştirmişlerdir.
Java dilinin temel özelliklerinden olan "platform bağımsızlığı"neyi ifade etmektedir?
Yazılan Java programları sanal makine üzerinde çalışırlar, bu sanal makine, yazılan programın direk olarak işletim sistemine erişmemesi ve soyutlanması için kullanılır. Bu özellikle Java programları büyük ölçüde taşınabilir olmaktadır. Bir Java programı değiştirilmeden, desteklenen bütün platformlarda çalışabilir.
JVM Hotspot-Compiler nedir?
Java kaynak kodu, bayt kod formatına dönüştürülür ve bu format hedef platforma bağımlı değildir. Bayt kod, sanal makine tarafından çevrilmektedir. JVM Hotspot-Compiler isminde der- leyici performans ve kritik bayt kod bilgilerini yerel kod bilgilerine çevirmektedir.
Java dili otomatik hafıza yönetimini nasıl yapmaktadır?
Yeni nesneler oluşturulduğunda hafızanın bölüştürülmesi kontrol edilmektedir. Yazılan programın direk olarak hafızaya erişimi yoktur. Çöp Toplayıcı (Garbage Collector) yapısı saye- sinde otomatik olarak aktif işaretçisi olmayan nesneler bellekten silinmekte ve hafıza problemleri oluşmasını engellemektedir.
Javascript nedir?
JavaScript, yaygın olarak web tarayıcılarında kullanılmakta olan dinamik bir programlama dilidir. JavaScript ile yazılan istemci tarafındaki betikler (script) sayesinde tarayıcının kullanıcıyla etkileşimde bulunması, tarayıcının kontrol edilmesi, asenkron bir şekilde sunucu ile iletişime geçilmesi ve web sayfası içeriğinin değiştirilmesi gibi işlevler sağlanabilmektedir.
JavaScript ile Java arasında; isimleri, yazılım şekli ve standart kütüphanelerindeki benzerlikler dışında herhangi bir bağlantı yoktur ve iki dilin semantikleri (anlam bilimi) çok farklıdır.
Java programları nasıl çalıştırılır?
Bir java yazılımı şu aşamalarla geliştirilir;
-
Yazılımcı Java kodunu yazar.
-
Yazılan kod bir Java derleyicisi ile derlenir.Bu derleme aşaması sonucunda “bayt kod” adı verilen bir tür sanal makine kodu ortaya çıkar. Platform bağımsızlığını sağlayan bayt kod’dur. Bir kere bayt kod oluştuktan sonra yazılım sanal makine içeren tüm işletim sis- temlerinde çalışabilmektedir.
-
Bu bayt kod Java Sanal Makinesi (Java Virtual Machine) tarafından işletilir. Bu aşama, her bir bayt kod komutunun teker teker yorumlanmasıyla icra edilebileceği gibi anında derleme (Just in Time Compilation)kullanılarak da gerçekleştirilebilmektedir.
Derleme ile yorumlama arasındaki fark nedir?
Anında çevirme işlemi, programlama dilindeki ifadeleri bir yandan okuyup bir yandan makine diline çevirmek demektir. Bu işleme “yorumlama (interpretation)” denilmektedir.
Önceden çevirme işlemi ise, programlama dilindeki ifadelerin çalıştırılmadan önce makine diline çevrilmesi, sonra da çalıştırılması anlamındadır. Buna da “derleme(compilation)” ismi verilmektedir.
Derlemenin yorumlamadan en önemli farkı hızlı olmasıdır. Zira makine diline çevirme işlemi sadece bir kere yapılmaktadır. Yorumlama, her çalıştırmada çevirme işlemi yapıldığı için daha yavaş olmaktadır. Derleme işleminin dezavantajı, programdaki her değişiklikte önce derleme işleminin gerekli kılınmasıdır. Sık değişiklik yapılan durumlarda programcı için ciddi sorunlar oluşturabilmektedir. Oysa yorumlama anında yapıldığı için değişiklik de anında yapılmaktadır. Basic, Perl, Phyton, Ruby gibi diller yorumlamalı, C, Pascal, Ada, Agol gibi diller de derlemeli dillerdir.
Bayt kod (bytecode) nedir?
Java, hem derlemeli hem de yorumlamalı bir dildir. Java programlama diliyle yazılmış kaynak kod, sanal bir işlemcinin anlayabileceği makine koduna çevrilmektedir. Bu kod gerçek bir makine olmadığı için ona makine kodu denmemektedir. Ancak programlama dili gibi konuşma diline yakın da olmadığı için kaynak kodu da değildir. Bu ara dile çevrilmiş koda “bayt kod (bytecode)” ismi verilmiştir. Bu ismin verilmesinin bir nedeni de makine kodu gibi baytlardan oluşmasıdır.
Java Sanal Makinesi (Java Virtual Machine - JVM) nedir?
Yazılan kaynak kod, derleme işlemi yapılarak bayt koda dönüştürülmektedir. Sanal işlemci ise bu bayt kodu makine koduna çevirme işlemini programın çalışması esnasında yapmaktadır. Her işletim sistemi ve işlemciye göre sanal makine, bu bayt kodu ilgili işlemcinin makine diline yorumlamaktadır. Bu sanal makineye “Java Sanal Makinesi (Java Virtual Machine - JVM)” ismi verilmektedir ve bu ünite içerisinde kısaca JVM olarak kullanılacaktır. Java’nın “bir kere yaz, her yerde çalıştır (write once, run anywhere)” felsefesi ve bu bağlamda platform bağımsızlığını sağlayan bileşen JVM’dir.
"Java Çalışma Ortamı" nedir?
Java diliyle yazılmış bir programın çalışması için mutlaka Java yorumlayıcısı olması gerekmektedir. Java uygulamasının çalışması için gerekli minimum gereçleri içeren yapıya “Java Çalışma Ortamı (Java Runtime Environment – JRE)” adı verilmektedir.
Java programlarını çalıştırmak için öncelikle çalıştırılacak cihaza eğer yoksa öncelikle JRE ku- rulması gerekmektedir. Bu işlem cihaz için sadece bir kere yapıldığı için, üzerine JRE kurulmuş bir cihaza herhangi bir program yüklenirken tekrar JRE kurulmasına gerek yoktur. JRE, bazı işletim sistemlerinde kendiliğinden kurulu olmakta, bazılarında ise tercihe bağlı olarak kurulabilmektedir. JRE içerisinde JVM ile birlikte birtakım açık kaynak kodlu Java kütüphaneleri de yer almaktadır.
Java Geliştirme Paketi (JDK) nedir?
Java Geliştirme Paketi, programcıların yazılım geliştirme sürecinde gerekli olan bileşenleri içeren pakete verilen isimdir. JDK içerisinde, Java uygulamalarını çalıştırmak için gereken Java Çalışma Zamanı Ortamını da içinde barındırmaktadır. Bu genellikle hususi çalışma zamanı olarak da adlandırılmaktadır, çünkü olağan JRE den ayrıdır ve ilave içeriğe sahiptir. JDK, bir JVM ve konuşlandırma ortamındaki sınıf kütüphanelerinin hepsinden oluşmaktadır. Aynı zamanda geliştiriciler için ekstra kütüphanelerin yanında arayüz tanımlama dili kütüphaneleri gibi ek kütüphaneleri de içermektedir.
Java Servlet nedir?
Java ile geliştirilmiş, sunucu üze- rinde çalışan uygulamalardır. Kullanıcıdan alınan verilere göre sonuçlar üreten Java sını arı olarak düşünülebilir. Bu veriler üzerinde gereken işlemler yapıldıktan sonra önceden tasarlanmış biçimlere uyarlanarak kullanıcıya geri döndürülmektedir.
Model Görünüm Kontrolcüsü nedir?
Yazılım mühendisliğinde kullanılan bir mimari desendir. Kullanıcıya yüklü miktarda verinin sunulduğu karmaşık uygulamalar- da veri ve gösterimin soyutlanması esasına dayanmaktadır. Böylelikle veriler (model) ve kullanıcı arayüzü (görünüm) birbirini etkilemeden düzenlenebilmektedir.
"Java Çöp Toplayıcısı"nın görevi nedirP
Java Çöp Toplayıcısı (Garbage Collector) sayesinde sanal makine akıllı bir biçimde kullanıl- mayan bellek bölümlerini belirli aralıklarla ya da uyarlamalı yöntemlerle otomatik olarak temizlemekte ve sisteme geri iade etmektedir. Çöp toplama sistemlerinin yapısı oldukça karmaşık olup geçen yıllar içerisinde büyük gelişmeler kaydetmiştir. Tabi çöp toplayıcıların varlığı Java’da bellek sızıntısı olmayacağı anlamına gelmemekte ancak daha ender olarak farklı şekillerde karşımıza çıkmakta ve genellikle tedavi edilmesi daha kolay olmaktadır.
"Tümleşik Geliştirme Ortamı" nedir?
Kaynak kodu yazarken Java diline has sözdizimi ve kuralları geçerli olacaktır. Dolayısıyla yazılan metin bir anlamda sıradan metin diliyle değil bir programlama diliyle yazılacağı için basit bir metin editöründen farklı bir ortamda yazılmalıdır. Programcıya yardımcı geliştirme ortamları, gerek yazılan dildeki basit imla hatalarının giderilmesinde gerekse dile has yapıların hatırlatıcılarla, sunulan eklentilerle kullanım kolaylığı getirmesi neredeyse bir zorunluluk halini almıştır. Bunlara kısaca “Tümleşik Geliştirme Ortamı (Integrated Development Environment -IDE)” ismi verilmektedir. Bu ortamlar sayesinde programcı hızlı ve rahat bir şekilde yazılım geliştirebilmekte, geliştirme sürecini organize edebilmekte ve bu sürecin daha verimli kullanılması sağlanabilmektedir.
Bir tümleşik geliştirme ortamında olması gereken özellikler nelerdir?
Bir tümleşik geliştirme ortamında olması gereken özellikleri şu şekilde sıralamak mümkündür:
-
Programlama diline göre sözdizimi renklendirmesi yapabilenkod yazım editörü.
-
Kod dosyalarının hiyerarşik olarak görülebilmesi amacıylahazırlanmış gerçek zamanlı bir çizelge.
-
Tümleşik bir derleyici, yorumlayıcı ve hata ayıklayıcı.
-
Yazılımın derlenmesi, bağlanması, çalışmaya hazır hale gel- mesi ve daha birçok ek işi otomatik olarak yapabilmek amacıyla küçük inşa araçları.
Kod yazımında kurallara neden ihtiyaç vardır?
Kod yazımında bu kurallara ve neden ihtiyaç duyulduğu şu şekilde sıralamak mümkündür:
-
Yazılım üretimindeki %80’lik bir zaman dilimi, kod bakımına (maintanence) harcanmaktadır.
-
Çok az yazılım, kullanım zamanı boyunca ilk programcısı tarafından geliştirilmektedir.
-
Mühendislerin yeni kodu hızlı ve verimli bir şekilde anlamasının sağlanması önemlidir.
-
Kod yazma gelenekleriyle yazılımın okunması ve anlaşılması kolaylaşmaktadır.
-
Yazılan kodu piyasaya açmak istendiğinde daha anlaşılır olacağı için daha kolay destek bulunabilmektedir.
Kod satırlarınında kullanılan “//” işareti neyi ifade eder?
Kod satırlarında kullanılan “//” işareti açıklama satırı (comment line) olarak adlandırılır. Açıklama satırları hemen hemen bütün programlama dilinde mevcut olup programcının programlama dili haricinde kendi anlayacağı bir dille yazmış olduğu satır ve satırlardan oluşmaktadır. Yazılan kodun üzerinde değişiklik yapılması muhtemel olan kişilere kolaylık sağlaması, bakım yapılabilirliğinin artırılması için doğal dille yazılan kelimeler topluluğundan oluşmaktadır. Bu satırlar derleyici tarafından göz ardı edilmektedir.
"Public" isimli erişim belirleyicisinin görevi nedir?
“Public” olarak belirlenen erişim belirleyicisi o sınıfın bu sınıf haricinde diğer sınıflar ve paketlerden erişilebilirliğini yani dışarıdan erişilebilir olduğunu ifade etmektedir. Bu yapı nes- neye yönelik programlama konusu içerisinde olan sarmalama (encapsulation) yapısı içerisine girmektedir. Sonrasında “class” ön ekiyle sınıfın tanımlandığı yapı görülmektedir.
Java programlama dilinde ";" işaretinin görevi nedir?
Java programlama dilinde ";" işareti kod satırının sonuna gelindiğini işaret eder.