JAVA - Google Groups

advertisement
JAVA
 Java, Sun Microsystems tarafından geliştirilen nesne
yönelimli bir programlama dilidir. Ağ (network) ortamı
düşünülerek ve yazılımın platformdan bağımsız olarak
çalışması (değişik bilgisayar türlerinde ve değişik işletim
sistemlerinde çalışması) düşünülerek geliştirilmiştir. Bu
nedenle, diğer dillerden farklı olarak, aynı zamanda kendisi de
bir platformdur.
 Java uygulamalarınızı yazmak için, Notepad gibi bir program
dışında özel olarak geliştirilmiş görsel arayüze sahip olan
programlar da vardır. Bu tür programlarda kodları hem yazar,
hem derler hem de çalıştırabilirsiniz.
 Örnek: Eclipse Platform (freeplatform), Java Builder
(BORLAND), Net Bean (SUN), Visual Age (IBM), vb.
Java diliyle birçok uygulama geliştirmek mümkündür:
 Grafiksel Kullanıcı Arayüzü (Graphical User Interface: GUI)
uygulamaları,
 Appletler,
 Dağıtılmış bileşenler (EJB, RMI, CORBA, vb.),
 Web tabanlı uygulamalar (Servlet, JSP, vb.),
 Veritabanı erişimli uygulamalar,
 Cep telefonu, Akıllı kart uygulamaları.
Java platformları:
 Standart Java
 Enterprise Java
 Gömülü cihazlar (embedded devices) için Java
JAVA NASIL ÇALIŞIR
 Bir java yazılımı şu şekilde geliştirilir:
Programcı java kodunu yazar. Bu kod bir java derleyicisi ile
derlenir. Sonuçta bytekod adı verilen bir tür makine kodu
ortaya çıkar. Platform bağımsızlığını sağlayan şey
bytekod’dur. Çünkü bir kere bytekod oluştuktan sonra
yazılım tüm işletim sistemlerinde çalışabilir.
Bu bytekod Java Virtual Machine(Java Sanal Makinesi)
tarafından adım adım işletilir.
 Java çok farklı ortamlarda kullanılabilen bir programlama dili olduğu
için gelişim adımlarını tek standart kütüphane altında toplamak çok
anlamlı değildir. Java teknolojileri bu sebeple 3'e bölünmüştür. Bu
sayede her ortam için versiyonlama farklı farklı yapılabilir hale gelmiştir.
 JSE : Başta J2SE olarak anılan Java Standart Edition masaüstü
uygulamaları geliştirmek için kullanılan bir teknolojidir. JDK 5.0
çıktıktan sonra Java Platform 2’den gelen 2 isimden çıkartılmıştır.
 JEE : İlk başta J2EE olarak anılan Java Enterprise Edition sunucu
üzerinde çalışan uygulamalarda kullanılan bir teknolojidir. (Web siteleri
gibi) Aynı sebepten dolayı “2” isimden çıkartılmıştır.
 JME : Java Micro Edition ise cep telefonlarında kullanılan uygulamalar
(oyunlar gibi) için geliştirilmiş bir teknolojidir.
 JVM: (Java Virtual Machine) : JVM, Java dilinin işletim sistemi tarafından
anlaşılmasını sağlar. Bu sayede, Java ile yazılan bir program herhangi bir işletim
sisteminde çalışır hale gelir. JVM, bir anlamda sanal bir işletim sistemi gibi
düşünülebilir. JVM yüklü olmayan işletim sistemlerinde, Java kodları çalışmaz. Bu
nedenle, Flash programında hazırlanan .swf dosyalarının çalışması için Flash
oynatıcısının gerekmesi gibi, Java uygulamalarının çalışması için de sisteme JVM
yüklenmesi gerekir. Günümüzde bazı tarayıcılar JVM destekli olarak geliştirilmiştir.
İşletim sistemine göre, kullanılan JVM türü de değişebilir.
 JRE: (Java Runtime Environment) : Bir Java uygulamasını
çalıştırmak için gerekli minimum gereçleri içeren yapıya verilen
isimdir. Yani bilgisayarımızda bir Java uygulamasının
çalışabilmesi için JRE’nin kurulu olması gerekir. JRE içerisinde
JVM de bulunur.
 JDK: (Java Development Kit) : Kendimiz bir Java uygulaması
geliştirmek istiyorsak o zaman JRE yetersiz kalır. JRE’nin
yanında ekstra gereçler gereklidir. JDK dediğimiz yapı içerisinde
Java Compiler, Java Interpreter, geliştirici toolları, Java API
kütüphaneleri, Java geliştiricileri tarafından Java uygulamaları
geliştirmek için kullanılan dokümantasyonlar bulunur. Ayrıca
JVM ve JRE içerir.
 JDK = JRE + JVM + derleyici + diğerleri diyebiliriz.

Java Kodunun Yazılması
Java nesneye yönelik bir dil olduğundan tüm yazılım
sınıflar ve nesneler üzerinden yürütülür. Sınıflar
uygulamadaki nesnelerin tanımlandığı kod parçalarıdır.
Java’da her bir sınıf bir dosya içerisinde yer alır. Dosyaların
uzantıları .java şeklindedir. Dosya adı ise içinde tanımlanan
sınıf ile aynıdır. Örneğin, BenimSinif.java gibi.
Derleme
 Derleyici kısaca herhangi bir editor ile yazılan java kaynak
kodlarını(yani .java uzantili siniflarin yer aldigi dosyalari) java
sanal makinesinin çalıştırabileceği bir tür makine
dili(assembler) olan Bytecode’a dönüştürür. Bu dönüştürülen
bytekod ise .class dosyaları içerisinde saklanır.
 Java kodunu derlemek için bir java derleyicisine ve java
kütüphanelerine ihtiyacınız var. Şu anda iki derleyici yaygın
olarak kullanılmaktadır. Bir tanesi Sun’ın SDK’si ile birlikte
gelen javac. diğeri ise IBM’in açık kodlu derleyicisi jikes.
Jikes, cok hızlı derlemesi ile ünlü olsa da en son java
yazılımlarını derlemek için javac’e ihtiyaç duyulabilir.
 Ayrıca linux altında derleme yapmak için gnu lisansi ile
geliştirilen açık kodlu Gnuj kullanılabilir. Derleyici ve
kütüphanelerin(Java API) bulunduğu uygulamaya “J2SE SDK”
adı verilmiştir.
 Derleme için yazılan kod:
Çalıştırma için yazılan kod:
javac *.java
java *
 Derlenen kodlar çalıştırılmak üzere JVM e yüklenirken;
sınıflar yüklenir, byte kodların kontrolü yapılır ve yorumlama
başlar.
JAVANIN YAPISI
NESNE YÖNELİMLİDİR
 Gerçek hayattaki nesneler, Java.da temsil edilebilir.
 Örnek: öğrenci, ders, öğretmen, not
 Java.nın sözdizimi C++.ın sözdizimine benzer; ama nesneye
dayalı bir programlama dilidir. Nesneye dayalı tasarım ve
mimarisi; Smalltalk, Eiffel, Objective C gibi nesne yönelimli
dillerden türetilmiştir.
SÖZDİZİMİ
 Sözdizimi, C ve C++.ınkine benzer.
 C++.ın aşağıdaki özellikleri Java.da yoktur:
 İşaretçi (pointer) aritmetiği
 Otomatik tip değiştirme
 Typedefs, Defines, Pre-processor, Enums
 Structures, Unions
 Fonksiyonlar
 Çoklu kalıtım
 Kullanıcının tanımladığı Overloading Operatörler
PLATFORM BAĞIMSIZDIR (MİMARİ OLARAK
NÖTRDÜR)
 Java programları platformdan bağımsızdır.
 Java derleyicisi, kaynak kodu byte kod komutlarına çevirir.
 .Byte kod komutları, Java Virtual Machine (JVM) tarafından
yürütülür. JVM, özel bir yazılımdır. Bilgisayarın işletim
sistemi ile kendi üzerinde çalışan Java uygulaması arasında bir
katman olarak yerini alır. Bu şekilde, işletim sisteminin
hafızasını işgal etmez.
TAŞINABİLİRDİR
 Java, Bir kere yaz, her yerde çalıştır ilkesine %100 uyar.
 Java, bir tamsayının boyut ve aritmetik davranışını kendisi
belirler; bu işi çalıştığı makineye/işletim sistemine
bırakmaz.
DAĞITIKTIR
 Java TCP/IP ağ yeteneklerine sahiptir.
 örnek: HTTP, soket, vb.
 RMI (Remote Method Invocation) ve EJBs (Enterprise Java
Beans) kullanarak, bir JVM deki nesneler, diğer bir JVM deki
nesnelerle haberleşebilir.
 CORBA kullanarak, Java nesneleri başka nesnelerle
haberleşebilir.
Java Mimarisi
2 Katlı Mimari
 Klasik istemci-sunucu sistemler 2 katlı (2-tier) mimariler
üzerine kurulmuşlardır. Bu tür sistemlerde, uygulama direk
olarak veritabanı sunucusuyla ilişkidedir. Genel olarak,
üretilen işin büyük bir bölümü istemci tarafından yapılırken,
çoğu zaman sunucu sadece veritabanı sunucusu görevi görür.
Bu, uygulamanın kabul edilebilir bir hızla çalışması için güçlü
bir istemci donanım gereksinimini ve bilgisayar ağı
olanaklarının gereğinden fazla kullanımını doğurur. Bunun
nedeni, iş mantığının işlenmesinin büyük bir bölümünün
istemci tarafından yapılıyor olması ve uygulamanın, her
gerekli veri parçası için, veritabanına bağlanıyor olmasıdır.
2 katlı mimari
3 Katlı Mimari
 2 katlı
mimarilerin
sık
karşılaşılan
problemleri
karşısında,
yazılım
endüstrisi 3
katlı mimari
kavramını
geliştirdi
 3 katlı mimariler uygulama görevleri ve sorumlulukları
açısından birbirinden farklı 3 bölüme ayrılır. Genellikle bu
ayrım fiziksel, somut bir ayrımdır.
 İlk bölüm, sunuş katı (presentation tier), genel olarak
herhangi bir tip grafik kullanıcı arayüzünden oluşur.
 İkinci bölüm, iş katı (business tier) ya da uygulama katı
(application tier), uygulamanın işlem mantığını içerir.
 Son bölüm, veri katı (data tier), uygulamanın ihtiyacı olan
veriyi sunan kattır.
Çok Katlı Mimari
 Uygulamalarda görev ve sorumluluk ayırımını bir adım daha
ileriye götürürsek, çok katlı (n-tier ya da multi-tier) mimari
adını verdiğimiz ve bugünün uygulama sunucularının yaygın
hale gelmesini sağlayan kavrama varırız. J2EE teknolojisi bu
tip mimariler üzerine kurulmuştur. Çok yeni olmayan bu
kavram ancak yeni yeni kabul görüyor. Bu hızlı değişimin
nedeni, şirket ihtiyaçlarının hem hacim hem de karışıklık
olarak artmasıdır. Artık şirketler değişik platformlar ve
değişik yazılım dilleri kullanan ve karışık hetorojen
ortamlarda çalışan uygulamalardan fazla zaman harcamadan
yararlanmak istiyorlar.
 Genel olarak, J2EE uygulama mimarileri 5 ana kattan
oluşur:
 İstemci Katı (Client Tier): Bu kat, geliştirilen uygulamaya ya
da sisteme bağlanan diğer uygulamalar ya da cihazlardan oluşur.
Örneğin: Internet tarayıcısı, Java applet, WAP telefon...
 Sunuş Katı (Presentation Tier): Bu kat, sistemin istemcileri
için gerekli olan her türlü sunuş mantığını içinde bulundurur.
Uygulamaya bağlanan istemcilerin taleplerini kaydeder, gerekli
iş mantığının uygulanmasını sağlar, talebin işlenmesi sonucu
ortaya çıkan veriyi sunulur hale getirip istemciye cevap yollar.
J2EE'yi oluşturan teknolojilerden ikisi JSP (JavaServer Pages)
ve Java Servlet bu katta bulunur.
 Uygulama ya da İş Katı (Applıcation/Business
Tier): Uygulamanın hedef aldığı ve gereklerini tatmin etmek için
geliştirildiği işe dayalı tüm bilgi işlem bu katta toplanır. Bu görev,
J2EE'yi oluşturan bir diğer teknoloji olan EJB (Enterprise
JavaBeans)'ler tarafından sağlanır.
 Entegrasyon Katı (İntegrationTier): Bu kat, uygulamanın
görevini yerine getirmesi için gerekli olan sistem dışı yazılımlara,
sistemlere ya da veri tabanlarına bağlantıları sağlamakla
yükümlüdür. J2EE uygulamalarının bu bölümleri, genelde, JDBC
(Java DataBase Connectivity), J2EE Connector ya da bağlantı
kurulan yazılımlara özel arayüzleri kullanırlar.
 Kaynak Katı (Resource Tier): Bilgiişlem için gerekli veriler ve
dış servisler bu katı oluşturur.
KAYNAKÇA
 Nesneye Yönelik Programlama-JAVA Ders Notları,




Ders sorumlusu Yrd.Doç.Dr.Hilmi KUŞÇU
Java Programlama Diline Giriş “Merhaba Dünya”,
CanburakTümer
Kaynak:http://www.bilgiustam.com/java-nedir-nasilcalisir/
http://www.yazilimdevi.com/Makaleler-583--javanincalisma-mantigi-ve-jvm--jre--jdk-kavramlari.aspx
http://www.teknoturk.org/docking/yazilar/tt000051yazi.htm
Download