Anasayfa / Bilgisayar Mühendisliği / Java Nedir – Java Eğitimi 1

Java Nedir – Java Eğitimi 1

A-> Java Nedir?

Evet… Java nedir sorusunun cevabını vermeden önce ile Java ile ilgili  olarak şunları söylemek istiyorum. İlk olarak Java öğrenmek sanıldığı kadar zor ve karmaşık değildir. Herhangi bir programlama dili bilen birisi, bu dili de kolaylıkla öğrenebilecektir. Özellikle internette dolaşan, java öğrenmenin zor olduğuna dair düşünceler sizlerin canını hiç sıkmasın. Evet Java bilen piyasada diğer dillere göre az olabilir. Fakat bunun sebeplerini düşünmemiz lazım. Bana sorarsanız, üniversitelerde yeni yeni Java dersleri başlıyor. Daha önceleri Microsoft odaklı diller üniversitelerde ağırlıklıydı. Bence insanların eğilimlerini etkileyen en önemli şey buydu.

Bu eğitim nereye kadar gider bilmiyorum. Fakat bildiklerimi paylaşmak, belki sizlere bir katkım olur düşüncesiyle böyle bir eğitime başlamak istedim. Bu eğitimde yapmak istediğim, elimden geldiğince, işlediğim konuyla alakalı ayrıntılı bilgiler vererek, bu dili severek öğrenmenizi sağlamak. Özellikle çeşitli kaynaklardan da yararlanarak (en aşağıda Kaynakça kısmında bulabilirsiniz) en doğru bilgiyi sizlere verebilmek.

Fazla da uzatmadan, bu derste işleyeceğimiz konular arasında, Java nedir?, nerden çıktı? Açık kaynak kodlu olması ne demek? Neden Java? Gibi soruların cevapları bulunmaktadır.

JavaSun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu (13 Kasım 2016’da GPL ruhsatı sayesinde), nesneye yönelik, işletim sisteminden bağımsız(her platformda çalışabilir), yüksek verimli, çok işlevli, ileri seviye, adım adım işletilen (yorumlanan-interpreted) bir programlama dilidir. Evet oldukça uzun bir cümle değil mi? Fakat Java’yı bence çok güzel özetliyor. Şimdi bu cümlenin bize anlattıklarını, sizlere açıklamak istiyorum.

1->(Ek Bilgi – James Gosling) Java, James Gosling tarafından geliştirilmeye başlanmıştır.

james gosling

James Gosling, bir devlet üniversitesi olan Calgary Üniversitesi’nden mezun olmuştur.(Bachelor of Science (Fen Fakültesi)). Yüksek lisans ve doktorasını ise Carnegie Mellon Üniversite’sinde tamamlamıştır. Doktorasını yaparken, Emacs adı verilen, temel görevi metin düzenlemek olan bir editör de yazmıştır. (Gosling EmacsGosmacs adını vermiştir). Sun Microsystems’e katılmadan önce 16 yollu bir bilgisayar sistemi olan Unix multi-processor de yazmıştır. Daha sonra ise, bazı yorumlayıcılar ile mail sistemlerine de katkıları olmuştur.

1984-2010 yılları arasında Sun Microsystems şirketine katılmıştır. James Gosling, Java programlama dilinin “Babası” olarak bilinmektedir. Bilgisayar dünyasına kattıklarıyla, birçok ödül de alan James Gosling’i, sanırım az da olsa tanıtmadan geçemezdim.

2->(Açık Kaynak Kodlu) Açık kaynak kod, herkesin kullanabileceği, isterse değiştirebileceği, geliştirebileceği, düşündüklerini kolaylıkla yapabileceği ve kısacası üretmek isteyenler için yaratılmış diyebileceğim bir sisteme verilen addır. Java da açık kaynak kodlu bir sistemdir. İsteyenler geliştirebilir, geliştirdiklerini paylaşabilir. Java’nın bu kadar hızlı gelişmesinin sebebi, bana sorarsanız açık kaynak kodlu olmasıdır.

3->(Nesneye yönelik) Öncelikle Java’nın nesne tabanlı olması, bizlere sağladığı faydalar bakımdan çok önemlidir. İyi yazılmış bir yazılımın temelinde Nesneler vardır. Nesne nedir? Bu sorunun cevabını şu şekilde verebiliriz. İçinde veriler ya da fonksiyonlar bulunan, bunları sürekli yazmak yerine, sadece bir kere yazılarak defalarca kez çağrılabilmesine verilen isimdir. Nesnenin üyelerine oluşturulan veriler ve metotlar(fonksiyonlar) diyebiliriz.

Nesneye yönelik programlamanın birçok avantajı bulunmaktadır. Üstte yaptığım Nesne’nin tanımı aslında kafanızda, yarattığı avantajlar bakımından bir şeyler oluşturmuştur. Nesneyle yazılan programların bakımı kolaydır. Yazılmış olan bir fonksiyonu değiştirerek, tüm yazılıma kolaylıkla değişimi yayabilirsiniz. Bu da sizin boşa zaman harcamanızı önler. İkinci avantajı ise, yarattığımız olan nesnelere istersek ek özellikler ekleyerek genişletilebilirlik özelliğini de kullanabilmemizdir. Üçüncü ve bana sorarsanız en büyük avantajı, defalarca kez aynı kodun kullanılabilmesidir. Sanırım nesneye yönelik olmasının avantajlarını anlatabilmiş ve anlayabilmişsinizdir.

Tüm bunlara ek olarak, biraz ezber biraz anlama dayalı olan, bir programlama dilinin Nesneye yönelimli sayılabilmesi için 4 temel özellik ortaya atmışlar. Bu özellikleri de daha sonra açıklamak üzere yazmadan geçmek istemiyorum. Bu 4 özellik, Soyutlama (Abstraction),  Sarmalama/Paketleme (Encapsulation), Miras alma (Inheritance) ve Çok Biçimlilik (Polymorphism)’tir.

4->(İşletim Sisteminden Bağımsız) İşletim sisteminden bağımsız olması demek, her platformda çalışabileceği anlamına gelir. Peki bu nasıl sağlandı? Bu sorunun cevabını şöyle verebiliriz. 1. Madde de anlattığım James Gosling,  basit olduğu kadar harika bir buluş yaparak farklı işletim sistemleri ve donanımlarda kurulabilen ortak bir sanal makine olan JVM (Java Virtual Machine)  üretti. Bu sanal makineyi ücretsiz olarak dağıtarak, her platforma kolayca kurulabilmesini sağladı. Peki bu sanal makine ne işe yarar? Java dili ile yazılan programları, Java derleyicisi aracılığıyla, JVM’de çalışabilen bir tür makine diline dönüştürerek bir tür sanal makine oluşturur. Bu sanal makine gerektiğinde çalışır. Bizler açmadığımız zamanlar ise bellekten silinir. Dolayısıyla ne makineyi şişirir ne de başka bir zararı olur. Günümüzde Java uygulamalarını çalıştırmak isteyen kullanıcılar, JRE yani Java Runtime Environment’ı kurarak yazdığımız programları kullanabilirler.

Kısacası işlem basamakları şu şekildedir.

Java programı derlenir ->  Böylelikle java bytecode çevrilir. -> JVM tarafından yorumlanır. -> Çalışır.

5->(Yüksek verimli, çok işlevli, ileri seviye) Evet, Java programlama dili yüksek verimli, çok işlevli, ileri seviye bir dildir. Java kendi sitesinde, Java dilinin niteliklerini şu şekilde özetlemekte.

  • Basittir. (Garbage Collection adı verilen bir sistem sayesinde bellek yönetimini kendisi yapar)
  • Nesne Yönelimlidir
  • Dağıtıktır. ( Bir network üzerinde olan sistemlerin bütünleşik çalışmasını sağlayabilir)
  • Çoklu iş yeteneği vardır. (Multithreaded, Kısacası aynı anda birden çok iş yapılabilmesidir)
  • (Değişkendir)
  • Mimari yapıdan bağımsızdır. (Donanım bağımsızlığı vardır)
  • Taşınabilirdir.
  • Yüksek performanslıdır.
  • Sağlamdır
  • Güvenlidir.

B-> Java ile Neler Geliştirilebilir?

Sınıf Kütüphaneleri -> Başka uygulamalarda kullanılacak kütüphane sınıfları yaratabiliriz.

Konsol Uygulamaları  -> Satır komutu arayüzü için görsel Java uygulamaları yarabiliriz.

Web Uygulamaları   -> Web sitesi oluşturabiliriz. (JSF, JSP)

XML Uygulamaları    ->  XML Web servisleri oluşturabiliriz

Veritabanı Uygulamaları   -> Veritabanlarını yönetmek için uygulama programları yaratır.

Mobile Web Uygulamaları  -> Cep telefonları için uygulama yazılabilir. Android bilmek için java bilinmesi gerekmektedir.

Oyun Programları  ->  java ile oyun programları yazılabilir.

 

C->Neden Java?

  • Her platform ve donanımda çalışır.
  • Otomatik hafızalamaya sahiptir. (Garbage Collection)
  • Nesneye yöneliktir.
  • Multithreaded sayesinde uygulamalar daha verimli çalışır.
  • C/C++ ailesinden geldiği için, bunları bilen biri kolaylıkla adapte olabilir.
  • Operatörlerin aşırı yüklenmesine izin vermez.
  • C/C++’a göre kütüphaneleri kolaylıkla ekleyebiliriz. Sürekli header yazmamıza gerek kalmaz.
  • Platform fark etmeksizin, her veri tipinin kaplayacağı alan bellidir.
  • Açık kaynak kodludur. Bunun nimetlerini belirtmiştim :=)
  • Öğrenmesi çok kolaydır.
  • Geliştirmek isteyene, çok büyük bir kütüphane desteği sunar.
  • Ve daha sayamadıklarım…

Kısacası Java programlama dili, piyasada bulunan diğer programlama dillerine göre oldukça avantajlı bir dildir. Öğrenmesi kolay, ve sürekli gelişen dinamik bir dildir. Ayrıca günümüz mobil sektörünün en önemli elemanlarından biri olan Android, Java dili kullanılarak geliştirilmektedir. Eğer bir gün Android yazmak isterseniz, bu işin ilk adımı Java öğrenmek olacaktır.

Kaynakça

https://tr.wikipedia.org/wiki/Java_(programlama_dili)

http://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/java/ch02/JavaNedir.htm

http://www.kurumsaljava.com/2012/05/29/herhangi-birisi-size-neden-java-kullaniyorsunuz-sorusunu-sordugunda-hangi-cevabi-verirsiniz/

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

Regex Nedir? Nasıl Kullanılır?

Regex(Regular Expression) yani düzenli ifadeler, metinlerde aranan bir tümceyi kolayca bulmamızı sağlayan bir çeşit algoritmadır. Yani …

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir