Java Hakkında - Java Nedir? Java’nın Tarihi Java’nın Avantajları Java Platformu - JVM - Java Nasıl Çalışır? - Java kodunu console dan çalıştırmak Java Nedir? Java Sun Microsystems firması tarafından geliştirilmiş nesneye yönelik, platform bağımsız, çok işlevli ve interpreted (yorumlanmış) bir programlama dilidir. Java’nın Tarihi Java ilk olarak 1991 yılında James Gosling ve ekibi tarafından Sun Microsystems tarafından geliştirildi. Bu dile OAK adı verildi. Dil gömülü elektronik sistemlere yazılım geliştirmek için tasarlanmıştı. Web teknolojilerindeki hızlı gelişme ve OAK’ın ticari bir isim olarak kullanılamayacağının hukuki bir araştırmayla ortaya çıkmış olması, Sun firmasını yeni bir ad arayışına götürdü. 1996 yılında OAK dili JAVA adını aldı. Javanın ilk sürümü çıktı. Java’nın Tarihi Sürüm Tarihçesi 1.0 (1996) — İlk sürüm. 1.1 (1997) — Önemli eklentiler. Örneğin iç sınıflar. 1.2 (4 Kasım 1998) — Kod adı:Playground. API'de önemli değişiklikler, reflection özelliği ve JIT Derleyicisi nin eklenmesi. ancak dilin kendisinde önemli değişiklikler olmadı. 1.3 (8 Mayıs 2000) — Kod Adı: Kestrel. HotSpot JVM sunuldu. 1.4 (13 Şubat 2002) — Kod adı: Merlin. assert kelimesinin dile eklenişi, nio sınıfları ve pek çok yeni API değişikliği. 5.0 (29 Eylül 2004) — Kod Adı: Tiger. (Önce 1.5 olarak duyruldu) Pek çok yeni dil özelliği eklendi. 6.0 (11 Aralık 2006) — Kod Adı: Mustang. Grafik alt yapısında ve sanal makine başarımında gelişmeler oldu. 7.0 (2008, öngörülen) — Kod Adı: Dolphin. Muhtemel JVM yapı değişikliği. (2010 sonunda tamamlanması planlanıyor.) Java’nın Tarihi Java Editions(J2ME, J2SE, J2EE) Java, 1.2 sürümünde çok fazla değişiklik yaptığı için bu sürüme JAVA 2 adını verdi. Java 2’yide 3 farklı sürüme böldü. Bu sürümler arasındaki fark ilgili ortamda çalışacak classları toplamasıdır. Java’nın Avantajları Basit Öğrenilmesi ve kullanılması kolay bir dil olarak tasarlanmıştır. Özellikle C++ biliyorsanız Java ya geçiş çok kolay olacaktır. Güvenli Java güvenli bir dildir. Java diliyle virüs yapılamaz. Hiç bir virüs bir Java programına bulaşamaz. Kötü niyetli bir program, bir işlemi eğer izin verilmediyse yapamaz. Bu özellik, Internet gibi herkesin başkasının makinesine erişebildiği bir ortamda çok önemlidir. Java'yı güvenlik gereksinimi yüksek bir çok firma bu yüzden tercih etmektedir. Taşınabilir Java programları her ortamda aynı veya benzer bir şekilde çalışır. Her ortam/makine için ayrı bir program yazmaya gerek kalmaz. Programcı programın çalışacağı makinenin durumunu göz önüne almak zorunda kalmaz. Bir programın görüntüsü çalıştığı hey yerde hemen hemen aynıdır. Programcı her işletim sistemi ve her sürüm için ayrı bir program yazmak zorunda kalmaz. Java’nın Avantajları Nesne Yönelimli Java tamamen nesneye yönelik'tir. Diğer bazı diller gibi nesneye yöneliklik sonradan dile eklenmemiştir, başından beri Java'da bulunmaktadır. Bir Java programında olabilecek her şey ya nesnedir ya da bir nesnenin parçasıdır. Java nesneye yönelik programlamayı sadece mümkün değil aynı zamanda kolay kılmıştır. Java'da bir nesnenin yapılması, kullanılması, geliştirilmesi, başka bir yere aktarılaması çok kolaydır. Sağlam Java sağlam bir dildir. Programlamadaki hataların çoğu daha yazılma aşamasında anlaşılabilmektedir.Yazılma aşamasında anlaşılmayanlar, programın çalışması esnasında yakalanabilmektedir. Bir 'exception'la, programda hatanın ne olduğu, nerede olduğu ve hangi işlemi yaparken olduğu bile belirtilebilmektedir. Hata olması durumunda da programı çalıştıranlar hatayı ayrıntılarıyla öğrenme olanağına sahip olur. Java’nın Avantajları Çok Kanallı Java dili başından beri çok kanallıdır(Multi-threaded). Çok kanallılık programın aynı anda birden fazla işi yürütebilmesi demektir. Mimariden Bağımsız Java’nın en önemli özelliği Java’nın her platformda çalışmasıdır. İşletim sistemi ve işlemci terfileri ve çekirdek sistem kaynaklarındaki değişiklikler Java’yı etkilemez. Yorumlanan Java derleyicisi byte-code u ürettikten sonra bu kod JVM olan herhangi bir sistemde yorumlanabilir. Java’nın Avantajları Yüksek Performanslı Diğer dillerde olmayan bir çok özelliğe sahip olmasına rağmen, Java'da bunun için fazla bir performans kaybı yoktur. Java'nın ilk versiyonlarında çalışan programlar diğer dillerde yazılan eşdeğerlerine göre elbette yavaştır. Ancak Java'nın gelişmesiyle birlikte Java bu farkı, üstün özelliklerinde vazgeçmek zorunda kalmaksızın kapatmaktadır. En son Java sürümüyle birlikte JIT (Just-In Time-Tam Zamanında Derleme) teknolojisi devreye girmiş bulunmaktadır. Dağıtık Java 'dağıtık' bir dildir. 'Dağıtık' birden fazla bilgisayarda çalışan programların bir biriyle uyumlu çalışabilmesidir. Bir yazılım parçasının bir kısmının bir makinede diğerinin başka makinede aynı anda çalışması mümkündür. Bu yüzden Internet'in dilinin Java olduğu söylenmektedir. Günümüzde tek bir makine üzerinde çalışan, başka hiç bir yerle bağlantısı olmayan uygulama kalmamış gibidir. Bir çok işletme Internet üzerinden iş yapmaktadır. Bir çok işletmede birden fazla makine birbirine bağlı olarak çalışmaktadır. Bu yüzden Java dağıtık programlama için en uygun çözümlerden biridir. Java ile ilgili bazı kavramlar JVM(Java Virtual Machine): Java sanal makinesi donanımdan bağımsız yazılım geliştirme ihtiyacına cevap verme amacıyla geliştirilen bir teknolojidir. Java’nın temel felsefesi olan “bir kere yaz, her yerde çalıştır” sanal makine sayesinde varolmuştur. JIT(Just in Time Compiler):Java ilk çıktığında bytecode işletme hızı çok iyi değildi. Yerine göre sistemin öz yazılımlarından 5-10 kat yavaş çalışıyordu. Bu nedenle bazı yazılım geliştirme şirketleri JIT yani Just-in-time compile(aninda derleme) araçları üretmeye başladılar. Yapılan şey bytekodu sanal makinenin kurulu olduğu gerçek sistemin diline anında derleme yaparak dönüştürmesiydi. Bu sayede performansta ciddi artışlar sağlandı. Garbage Collector: Çöp toplayıcı sayesinde Java’da bir nesne oluşturulduktan sonra o nesne ile işiniz bittiğinde hiçbir şey yapmanız gerekmez. Sanal makine akıllı bir biçimde kullanılmayan bellek bölümlerini belirli aralıklarla ya da adaptif metodlarla sistemi otomatik olarak temizler ve sisteme iade eder. Hot Spot teknolojisi: Hot spot teknolojisi performans için kullanılan bir teknolojidir. HotSpot yani sıcak nokta, bir yazılımda sürekli olarak tekrarlanan ve üzerinden geçilen kod bölümlerine verilen bir isimdir. Bu kod bölümlerini belli bir süre sonra Byte code dan değilde doğrudan sistemin öz komutlarını kullanarak çalıştırır Java ile ilgili bazı kavramlar Java API: Java yazılımlarında kullanılan yazlım kütüphanelerine genel olarak verilen isimdir. Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konuda kullanıcılara erişim imkani sunulur. Java API J2SDK’nin bir parçasıdır. Java WebStart: Webstart teknolojisi Windows ve Linux işletim sistemlerinin baş belası olan uygulama kurulum, güncelleme ve silme dertlerine deva olmak üzere tasarlanmış bir sistemdir. JDK(Java Development Kit): Java geliştiricileri için standart kütüphanelerden ve JVM den oluşmaktadır. JRE(Java Runtime Environment) Sadece Java uygulamalarını çalıştırmak için kullanılır. İçinde JVM yi barındırır. Java Nasıl Çalışır Java Kodunu derlediğiniz zaman, üretilen kod farklı sistemlerde çalışabilir.(Windows, Linux, Unix..). Bu özellik onun sistemden bağımsız olduğunu gösterir. Java Nasıl Çalışır JVM JAVA Compiler Javac ile java kodunu derlediğinizde size .class uzantılı bir kod verir. Bu kod byte-code udur. Ve bu kod farklı sistemlerde çalışabilir. Javanın gücü de buradan gelir. JVM byte kodu alarak işletim sisteminin anlayacağı makine diline dönüştürür. Java Nasıl Çalışır Java Nasıl Çalışır Pogramcı kodu yazar. (.java uzantılı) Bu kodu java derleyicisi(javac) ile derler (.class uzantılı kod oluşur.) Bu koda bytecode denmektedir. Bytecode JVM(java) tarafından adım adım işletilir. Console dan Java Programı Çalıştırmak Basit bir örnek ile Console’dan JAVA programı çalıştıracağız.