Skip to main content

Java Teknolojisi Nedir?

Java, 1990′ların başında dünyanın önemli yazılım firmalarından biri olan ve kısa süre önce Oracle firması tarafından satın alınan Sun Microsystems tarafından geliştirilmiş, tamamen “Nesne Yönelimli Programlama (Object Oriented Programming)” paradigması üzerine tasarlanan çok güçlü ve önemli bir programlama dilidir. İlk zamanlar tasarlanan programlama dilinin adı, geliştirme takımının lideri olan James Gosling’in önerisi ile Oak olarak belirlense de, daha sonra Oak adında başka bir programlama dilinin var olduğu görülerek, dilin adı JAVA olarak belirlenmiştir.

Java, programlama dilinden öte aslında bir platformdur. Platform bağımsızlığı Java’nın en önemli özelliklerinden biri olduğu bir gerçektir. Peki, platform bağımsızlığı derken neyi kastediyoruz? Platform bağımsızlığı kabaca, geliştirilen uygulamaların herhangi bir platforma bağımlı olmaması demektir. Örnek olarak, Java uygulamaları geliştirilirken Unix, Linux ya da Windows platformlarına herhangi bir bağımlılık yaratmaz. Bu da, yazılım geliştiricilerinin başındaki en önemli sorunlardan biri olan yazılımın platformlar arası taşınması (deployment) konusunda, geliştiricilere (developers) büyük bir avantaj sağlamaktadır. C ya da C++ programlama dilleri kullanılarak yazılan uygulamalar, geliştirildiği platforma özgü birtakım kütüphaneler kullanmak zorundadır. Bu da bir süre sonra, uygulamanın başka bir platformda çalıştırılması zorunluluğu ortaya çıktığında, yazılımın diğer platform için tekrar yazılması gerekliliğini ortaya çıkarır ki bu, hem zaman hem de para kaybı demektir.


Java, mükemmel bir programlama dili olarak bugün dünyanın en çok kullanılan programlama dillerinden biri değildir, aksine en çok kullanılan programlama dilidir. Tüm dünyadaki birçok önemli proje Java kullanılarak hazırlanmış ve hazırlanmaya devam etmektedir. Özellikle kurumsal uygulama alanında (Enterprise) Java bugün rakipsiz bir konumdadır.

Java, C++ ve Smalltalk programlama dillerinden esinlenerek hazırlanmıştır. Sözdizimi C++ a oldukça benzer. Fakat, getirdiği özellikler ve çalışma prensibi bu ve önceki programlama dillerinden önemli ölçüde farklılık gösterir. Daha önce de bahsettiğimiz gibi Java, platform bağımsızlığı ve uygulamaların değişik platformlarda kolayca taşınıp çalıştırılması için tasarlanmıştır. Bu yüzden Java’nın geliştirilme nedenlerinden biri C/C++ türevi dillerdeki gibi mutlak performans ve hız! değildir. Genel anlamda bakacak olursak, Java uygulamaları C/C++ dillerinden bir ölçüde yavaş çalışabilir. Fakat bu kesinlikle Java’nın performanssız ve yavaş çalışan bir dil olduğu anlamına gelmemelidir. Bilakis, Java ile geliştirilen büyük ve kapsamlı projeler C ile geliştirilen aynı ugulamadan daha performanslı bile olabilir.

Java’nın bir diğer tasarlanma sebebi, programcıların kolaylıkla hata yapabileceği , hata ayıklanmasının çok zor olduğu ve programların stabil olarak çalışmasını engelleyen birçok özelliğin otomatik olarak Java tarafından yapılmasıdır. Örnek olarak programcılara büyük güç sağlayan pointer kavramı, Java’dan çıkarılmıştır. Her ne kadar pointerlar yazılımcılara büyük bir esneklik ve güç verse de, hatalara açık ve hataların ayıklanmasında çok büyük sorunlar ortaya çıkarmaktadır. Öyle ki, onbinlerce belki de yüzbinlerce kod satırından oluşan bir uygulama da ufacık bir pointer hatası, tüm uygulamanın göçmesine ya da stabil bir şekilde çalışmasına engel bile neden olabilir. Öte yandan, C ve C++ gibi dillerde bellekten (memory/ram) alınan alanların bizzat programcı tarafından işletim sistemine iade edilmesi şarttır. Bu tür bellek işlemleri, eğer sisteme geri iade eilmezse bellekte şişmelere ve uygulamanın oldukça performanssız bir şekilde çalışmasına neden olur. Neyse ki Java, bu tür işlemleri yazılımcıların sorumluluğundan alarak, bellek iadesi gibi işlemleri Garbage Collector (Çöp Toplayıcısı) gibi mekanizmalar ile otomatik olarak halletmektedir. Tüm bu yenilikler ve özellikler Java’yı diğer dillere kıyasla, büyük projelerde birkaç adım öne geçirerek sağlam, performanslı uygulamalar geliştirilmesine olanak tanır.

Java Teknolojisinin Temelleri


Java basit, güvenli, sağlam, tamamen nesne yönelimli programlama paradigması üzerine kurulmuş, yüksek seviyeli ve platform bağımsız bir programlama dilidir. Java aynı zamanda, taşınabilir, yüksek performanslı, çoklu kanal desteğine doğrudan destek veren (multithreaded) ve küçük ölçedeki diğer makinalarda bile performanslı bir şekilde çalışan bir teknolojidir.

Tüm bu özellikler JVM (Java Virtual Machine) adındaki Java Sanal Makinası üzerine kurulmuştur. Java ile yazılan yazılım kodları çalıştırılmadan önce bytecode adı verilen ara forma dönüştürülerek JVM tarafından yorumlanarak makina koduna çevrilmektedir. Bu da Java’nın platform bağımsızlığı özelliğinin arkasındaki en önemli güçtür. Java ile yazılan programlar, bytecode adı verilen ara forma çevrildiği için, JVM kurulu herhangi bir işletim sisteminde kodu tekrar derlemenize gerek kalmadan doğrudan çalıştırabilirsiniz.

Tüm Java teknolojisi JVM adındaki sanal makina üzerine tasarlandığı için, program kodunuzu derlediğinizde ortaya çıkan bytecode lar doğrudan çalıştırılabilir değildir. Kod içinde bulunan, işletim sistemi ve donanımlarla olan işlemler JVM tarafından dinamik olarak belirlenerek, bytecode yorumlanarak makina koduna dönüştürülür.

Eğer Java programlamaya başlamak istiyorsanız, herhangi bir editör (notepad gibi) ile uygulamanızın kaynak kodunu (source code) oluşturmaya başlayabilirsiniz. Daha sonra java compiler (javac) ile hazırladığınız kaynak kodu bytecode a çevirebilir ve derlenen bu bytecode u JVM kurulu herhangi bir işletim sistemine taşıyarak uygulamanızı çalıştırabilirsiniz.

Comments

Popular posts from this blog

Bluetooth ile Telefonda Multiplayer MineCraft Oynama

    Bugün Google Play'deki Bluetooth Chat isimli uygulamamın yorumlarına bakarken dikkatimi çeken bir kısımdan bahsedeceğim. Bir kaç yorumda gördüğüm minecraft PE hakkındaki konuşmaları araştırınca bluetooth mesajlaşma uygulamasını kullanarak minecraft'ı multiplayer olarak oynadıklarını gördüm. Peki nasıl yapıyorlar bu işlemi ? Öncelikle burada uygulama ile bluetoothlar eşleniyor ve telefonlar oyun için hazır hale getiriliyor. Daha sonra ise yerel olarak iki telefon birbirine bağlı olduğu için uygulamaya giriş yapılarak oynanabilir. Daha detaylı bilgi için aşağıdaki video'yu izleyiniz.

Exceldeki tüm satırlara istenen sql uygulamak

Sql oluştururken sık karşılaştığım durumlardan biri verilerin excel olarak verilmesiydi. çoğunu excel üzerinden macro yazarak tüm satırlara uygulamak ile çözdüm. Sonra kendi kendime dedim ki bunu daha basit hale getiremez miyim ? Java FX kullanarak bir arayüz oluşturdum. istenen sql i template olarak yazdıktan sonra tüm satırlara uyguladıktan sonra sql olarak çıktı veren bir program yazdım. Github üzerinde açık kaynak olarak paylaştığım bu jar dosyasına buradan erişebilirsiniz. Çalışma mantığı oldukça basit istediğiniz excel dosyasını upload butonu sayesinde ekliyorsunuz. Text alana sql template 'inizi yazıyorsunuz ve convert dediğinizde sql 'iniz oluşuyor istediğiniz konuma kaydedebiliyorsunuz. Örnek ekran görüntüleri aşağıdaki gibidir.

Zimbra 8.6 Ubuntu Server Kurulumu

Gereksinimler: Ubuntu Server 14.04 - 64bit root yetkisi 25 GB Depolama 4 GB Ram Bu kurulumda kullanılacak bilgiler: Domain : gurkancak ir.com IP     : 192.168.1. 11 Mail   : mail. gurkancakir.com   1) apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 dnsmasq wget Gerekli paketleri yükledikten sonra DNS server'i konfigure edelim. 2) nano /etc/hostname 2. maddedeki kodu girerek içerisini silip mail. gur kancakir.com  yazıyoruz. 3)  nano /etc/hosts 3 . maddedeki komutu girerek içine  192.168.1.11 mail.gurkancakir.com mail   satırı nı girere k kaydedip çıkıyoruz. 4) nano /etc/dnsmasq.conf  komutunda ise  server=192.168.1.11 domain=gurkancakir.com mx-host=gurkancakir.com, mail.gurkancakir.com, 5 mx-host=mail.gurkancakir.com, mail.gurkancakir.com, 5 listen-address=127.0.0.1   yazıp kaydediyoruz. 5) sudo reboot diyerek yeniden başlatıyoruz.  6) wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz tar -