JAVA PROGRAMLAMA DİLİ Öğr. Gör. Utku SOBUTAY İÇERİK 2 • • • • • Java Programlama Diline Giriş Java Platform Çeşitleri Java’nın Kodlama ve Çalışma Adımları Java Derleyicisi, Java Yorumlayıcısı Java Çöp Toplayıcısı Uzaktan Eğitim Uygulama ve Araştırma Merkezi Java Programlama Diline Giriş JAVA PROGRAMLAMA DİLİNE GİRİŞ • • • 4 Java Sun Microsystems Mühendislerinden James Gosling tarafından geliştirilen bir programlama dilidir. Günümüze ise; Oracle firması Sun Microsystems’i satın alarak bünyesine aldı. Java’nın özellikleri; – Açık kaynak kodludur. – Nesne tabanlı bir programlama dilidir. – Zeminden (işletim sisteminden) bağımsızdır (yazdığınız aynı kod MS Windows işletim sisteminde de çalışır, Linux türevi işletim sistemlerinde de çalışır). – Yüksek Verimli, çok işlevli bir dildir (Aynı anda birden çok işi yapabilirsiniz). – Yüksek seviyeli bir dildir (kodlanması için makine dili bilmenize gerek yoktur basit kelimeler ile programlama yapabilirsiniz). – Adım adım işleyen, yorumlanan bir dildir (her işletim sisteminde çalışabilmesini sağlayan da yorumlanmasıdır). Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA DİLİNE GİRİŞ • • • 5 • • • Java 1991 yılında ortaya çıkmış bir dildir, fakat Java ismini 1995’te almıştır. Bu yıla kadar dilin ismi Oak olarak anılmıştır. Java’nın ilk ortaya çıkış amacı, elektronik cihazlara program yazabilmektir. Elektronik cihazlarda farklı işlemci tiplerine program yazabilecek tek bir programlama diline ihtiyaçtan dolayı Java geliştirilmiştir. O dönemin C/C++ dilleri farklı işlemci tipleri için ayrı ayrı derlenebilse bile, her bir işlemci tipi için ayrı bir derleyici yazılması gerekiyordu. Java bunun gerekliliği ortadan kaldırmıştır. Web’in hızla gelişimiyle beraber ise; Java programlama dili, web üzerine kaymaya başladı. Uzaktan Eğitim Uygulama ve Araştırma Merkezi Java Platform Çeşitleri JAVA PLATFORM ÇEŞİTLERİ • • 7 • Java’da yapmak istediğimiz işlere ve konuya göre platformlar bulunmaktadır. Bu platformların gruplara ayrılmasının nedeni; küçük işler için büyük platformlara gerek duymamamız, karmaşıklığın önüne geçilmek istenmesidir. Java Platformları aşağıdaki gibi gruplanabilir; – Standart Sürüm (Standart Edition – J2SE). – Enterprise Sürüm (Enterprise Edition – J2EE). – Gömülü/ Mobil Sürüm (Midlet Edition – J2ME). Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PLATFORM ÇEŞİTLERİ • Standart Sürüm (Standart Edition – J2SE): – Java 2 Standart Edition – J2SE 8 – Standart masaüstü programları geliştirmek için kullanılan sürümdür. – Web tabanlı olmayan uygulamalar geliştirilebilir. – Dosya işlemleri, giriş/çıkış işlemleri, veritabanı işlemleri, standart matematiksel işlemler, şart, döngü yapıları, string/metin yapıları, ağ/network işlemleri, arayüz programlama, 2D çizimler v.b. standart programlama yapabileceğiniz Java platformudur. – Enterprise sürümüne göre daha az yer kaplamaktadır. – Kısıtlı özelliklere sahiptir. Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PLATFORM ÇEŞİTLERİ • Enterprise Sürümü (Enterprise Edition – J2EE): – Java 2 Enterprise Edition – J2EE 9 – Web üzerinde uygulamalar geliştirmek üzere kullanılmaktadır. – Standart Sürümün tüm özelliklerini içerir. – Standart sürümün üzerine; Mail uygulamaları, Server-Client uygulamaları, Server sayfaları, xml, html ile bütünleşik uygulamalar, AJAX uygulamaları, Mesajlaşma uygulamaları, Web servisleri, Servletler v.b. gelişmiş web programları yapabileceğiniz Java platformudur. – Sabit disk üzerinde daha çok yer kaplar ve daha karmaşık yapısı vardır. Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PLATFORM ÇEŞİTLERİ • Mobile Sürümü (Mobile Edition – J2ME): – Java 2 Mobile Edition – J2ME 10 – Mobil uygulamalar geliştirmek için ortam sunar. – Cep telefonu, akıllı telefonlar, televiyonlar, buzdolabı, çamaşır makinesi vb. gömülü sistemler için sınırlandırılmış fonksiyonlar ve özellikler içerir. – Bu tip sistemlerin sınırlı işlemci güçleri ve yetenekleri vardır, J2ME platformu buna uygun olarak hazırlanmıştır. – Mobil cihazlara arayüz oluşturma, kablosuz bağlantı, web bağlantısı, standart işlemler, dokunmatik ekran kullanan işlemler, mobil dosyalama ve veritabanı işlemleri, grafik ve video işlemleri vb. mobil programlar yapabileceğimiz Java platformudur. – Yeni nesil Android işletim sistemli telefonlara da J2ME ile yazılım yapılabilir. Uzaktan Eğitim Uygulama ve Araştırma Merkezi Java’nın Kodlama ve Çalışma Adımları JAVA’NIN KODLAMA VE ÇALIŞMA ADIMLARI •Java’da yazılmak istenen programlar bir editör yardımıyla yazılır ve .java uzantılı olarak diske kaydedilir. •Compiler byte code’ları oluşturur ve .class şeklinde diske kaydeder. •Class loader .class dosyasını diskten okur ve onu belleğe yerleştirir. 12 •Byte code doğrulayıcı tüm bytecode un geçerli ve Java’nın güvenlik sınırlamalarını çiğnemediğini kontrol eder ve onaylar. •Yorumlayıcı bytecode ları okur ve makinanın anlıyacağı dile çevirir program çalışırken kullanılacak bazı verileri belleğe yükler ve programı çalıştırır. Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA’NIN KODLAMA VE ÇALIŞMA ADIMLARI • • 13 • • • 1.Aşama: Yazmak istediğimiz program kodlarını notpad (not defteri), notpad2, notpad++ vb. basit bir metin editörü yardımıyla yazıyoruz ve dosya ismi.java uzantılı olarak diske kaydediyoruz. 2.Aşama: Java compiler’ı çalıştırıyoruz ve dosya ismini veriyoruz. Java Compiler’ın (Derleyicisi) ismi Javac’ dır. Compiler, java uzantılı yazdığımız kodları byte code adı verilen ara bir koda dönüştürür ve bunun sonucunda diskte dosya ismi.class uzantılı yeni dosya oluşur. 3.Aşama: Class Loader (Sınıf Yükleyicisi) oluşturulmuş .class uzantılı dosyayı diskten okuyarak ana belleğe yerleştirir. 4.Aşama: Byte Code Verifier (Byte Kod Doğrulayıcısı), ana belleğe yüklenen bu byte code’ların doğru olup olmadığını, kodda hatalar olup olmadığını kontrol eder ve çalışabilir durumda olduğunu onaylar. 5.Aşama: Intepreter (Yorumlayıcı), ana bellekte kontrol edilen bu byte codeları, makinen anlayacağı dile çevirerek çalıştırır. Java yorumlayıcısı Java Virtual Machine (JVM)’dir. Java kodlarını derlendikten sonra çalıştıran da Java’dır Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA’NIN KODLAMA VE ÇALIŞMA ADIMLARI • Kısaca; – – – 14 – – – Java’da kodlarımızı yazmamızı sağlayan programlara Editör denilmektedir. Java kodlarının derlenip byte code’a dönüştüren ve sonucunda .class uzantılı dosyaların oluşmasını sağlayan programa Javac denilmektedir. Byte Code’a dönüşüm sonucu oluşan .class uzantılı dosyaların çalıştırılmasını sağlayan program Java isimli programdır. Java programlarını yorumlayıp çalıştıran genel mekanizmada Java Sanal Makinesi (Java Virtual Machine – JVM)’dir. Her işletim sisteminin kendine ait JVM versiyonu mevcuttur. Aynı kodu alıp başka bir işletim sistemine taşıdığımızda, yine aynı işlemler yardımıyla değişiklik yapmadan java kodumuzu çalıştırabiliriz. Uzaktan Eğitim Uygulama ve Araştırma Merkezi Java Derleyicisi, Java Yorumlayıcısı JAVA DERLEYİCİSİ, JAVA YORUMLAYICISI • JAVAC: java derleyicisinin ismi javac’dır ve bu java platformunu yüklediğimiz zaman içerisinde gelir. – Editör ile yazdığımız bir java kodunu derlemek için; javac dosya ismi.java yazmamız yeterli olacaktır. – Bunun sonucunda kodları kaydettiğimiz yerde dosya ismi.class dosyası kendiliğinden oluşur. 16 • JAVA: derlenen java programcığı kullanırız. dosyasının çalıştırmak – Kodu çalıştırmak için; java dosya ismi yazmamız yeterli olacaktır. Uzaktan Eğitim Uygulama ve Araştırma Merkezi için Java adlı Java Çöp Toplayıcısı (Java Garbage Collector) JAVA ÇÖP TOPLAYICISI • • • 18 • • • Bir programın çalışma durumunda ortaya çıkan ve sonradan kullanılmayan (gereksiz) nesneleri bulur ve onları yok eder. Ana Bellek yönetiminin kontrolü ve yükü, kodu yazan kişiden Java’nın kontrolüne geçmiş olur. C++ benzeri diğer nesne tabanlı dillerde olduğu gibi nesnelerin yok edilmesini geri planda çöp toplayıcı halleder. Nesne tanımlandıktan sonra hiç kullanılmadıysa, kullanıldıktan bir süre sonra kullanılma bırakılmışsa veya o nesne ile ilgili işlemler bitip nesne kullanım dışı kalmışsa çöp toplayıcı bu nesneyi silecektir. Böylece kullanılmayan nesneler boşuna ana bellekte yer tutmayacaktır. Bellek yönetimi daha verimli olacaktır. Çöp toplayıcı kendi kendine otomatik olarak çalıştığı gibi, tetikleyerek/çağırarak kendimiz de çalıştırabilir. Bunun için; System.gc() komutu veya Runtime.getRunTime().gc() komutu kullanılır. Uzaktan Eğitim Uygulama ve Araştırma Merkezi SORULAR • • 19 • • SORU: Bir java programının uzantısı nedir? – CEVAP: Java programının uzantısı .java’dır. SORU: Bir java programı derlendiğinde hangi uzantılı dosyalar oluşur? – CEVAP: Java dosyası derlendiğinde .class uzantılı dosya oluşur. SORU: Java kodlarını hangi program derler? – CEVAP: Java kodlarını Javac isimli program derler ve sonucunda .class uzantılı dosya oluşur. SORU: Derleme sonucu oluşan ara koda ne ad verilir? – CEVAP: Derleme sonucunda oluşan .class uzantılı dosyaya Byte Code adı verilir ve içeriğinde Byte olarak kodlar bulunur. Uzaktan Eğitim Uygulama ve Araştırma Merkezi GENEL BAKIŞ 20 • • • Java nesne tabanlı bir programlama dilidir. Java temeli nesnedir, yani Java’da her yapılan işlem, yazılan kod birer nesnedir. Bu nedenle Java nesneye yönelik programlama yapılırken kullanılabilecek dillerden biridir. Uzaktan Eğitim Uygulama ve Araştırma Merkezi Ders Bitti. Dinlediğiniz için teşekkürler… •Uzaktan Eğitim Uygulama ve Araştırma Merkezi