Java Temelleri : Java Terimleri

advertisement
Java Terimleri
Java Terimleri
Java, birbirinden farklı aygıtlarda çalışabilen, bu aygıtlar arasında iletişimi
kolay hale getiren programlama dili ve platformudur. Java diliyle yazılmış
programlar, Windows, UNIX, Mac işletim sistemi yüklü bilgisayarlarda hiç bir
değişiklik yapmayı gerektirmeden çalışabilmektedirler
Java Nedir?
www.dijitalders.com
Java Terimleri
1
Java Terimleri
Masaüstü bilgisayarlar için 'standart' sürümünün dışında, el cihazları için 'micro', server network'leri için 'enterprise' sürümleri
bulunmaktadır. Micro sürüm, yazılan programların farklı cep telefonlarında ve diğer el cihazlarında çalıştırılabilir olmasını
sağlamaktadır. Enterprise sürümü farklı işletim sistemleri yanısıra farklı veritabanalrı ve diğer server programlarıyla standart
şekilde çalışmasını sağlamaktadır.
Niye Java öğreneyim?
Yazılım alanındaki en son gelişmeleri içerdiği için Java iyi bir programlama dilidir. Bu yüzden bu dil ve platform giderek
yaygınlaşmaktadır. Bir araştırmaya göre üniversitelerin %80'i programala dili olarak Java'yı öğretmektedir. %50'sinde bu dil zorunlu
ders olarak konulmuştur. Rakipleri C/C++ ve Pascal bu alanda gerilemektedir.
Java'ya başlamanın en kolay yolu nedir?
JDK'yı (Java Development Kit'i) veya bunu içeren herhangi bir programalama ortamını kurmak gerekir. Bir kitap ve çeşitli
belgelerden program yazma öğrenilebilir. Bütün bunları bulabileceğiniz bir çok İnternet sitesi vardır. Java'nın resmi sitesi
java.sun.com'da da bunlar bulunmaktadır. Bu sitede Java'yla ilgili her türlü kaynak bulunmaktadır. Java Tutorial iyi bir başlangıç
olabilir.
Object, Class ve Instace ne demek?
Object, içerisinde veri ve fonskiyon barındıran yapıdır. Veri tutan birimler 'property', belli bir işlev gören birimlere de 'method'
denir. Bir insanın boyu bir property dir ve yürümek bir method'dur. Bir nesnede ne gibi property ve methodlar olacağını belirleyen
yapıya class denir. Bu class'a uygun olarak yaratılan nesneye de instance denir. 'Web Sitesi' bir class'dır, 'godoro.com' bunun bir
instance'dır. İnsan bir class'tır, Remzi de bunun bir instance'ı.
Object-Oriented Programming ne demek?
www.dijitalders.com
Java Terimleri
2
Java Terimleri
Gerçek hayattaki nesneleri ve kavramları belirtmek için kullanılır. Object-Oriented Programlama'da programcının öncelikle
yapması gereken belli bir programı yapmak için gerekli nesneleri belirlemek ve bunlar arasındaki ilişkileri tanımlamaktır. Bir şirketle
ilgili program yapılırken, örneğin, Department, Employee, Manager, Customer, Supplier gibi class'lar yapılır. Bunlara gerçek
hayattaki karşılıklarına uygun olarak işlevler eklenir.
Inhertiance ne demek?
Bir nesnenin başka bir nesnenin özel olması ve ondaki bütün özellekileri içerimesini sağlayan yapı. Manager, örneğin,
Employee'nin özel bir halidir. Çünkü her manager aynı zamanda bir Employee'dir. Sigorta işlemleri örneğin her ikisininde de olduğu
için, manager için ayrı bir işlem yapmaya gerek yoktur.
Encapsulation ne demek?
Bir nesnenin bazı özellik ve işlevlerini diğerlerinden saklanabilmesi, erişimin sınırlandırılabilmesidir. Encapsulation'u
televizyonun kasası olmasına benzetebiliriz. Bazı düğmeler ortada ('public') dururuken bir çok parça kasanın içerisinde gizildir
(private). Zaten bir kullanıcının bunları kullanması gerekmez hatta dokunmaması gerekir. Aynı şekilde bir nesnenin kendinde
bulunan bileşenleri kötü niyetli veya bilinçis kullanımlardan gizlemesi gerekir. Encapsulation programcıya nesneleri koruma gücünü
verir.
Polymorphism ne demek?
Birbirine benzer nesnelere, aralarındaki farklarl ilgilenmeden aynı şekilde erişebilmektir. Her aygıtın bir on/of düğmesi vardır.
"Aç" düğmesine basılınca açılır, "Kapa" düğmesine basılınca kapanır. Ama her aygıtın açılması ve kapanma süreçleri farklıdır. Ancak
kullancı bunlarla ilgilenmez. Bu kavramın porgramlama dillerindeki nesnenlere uygulanmış hali polymorphism'dir.
Applet nedir?
Applet, bir tarayıcı içerisinde çalışan program parçasıdır. Bir web sayfasında bir image veya tablo gibi belli bir dikdörtgen
içerisinde çalışır ve programalamayla yapıbilecek bir çok işlemi gerçekleştirebilir. İndirildiği makineye bağlanıp veri alış verişinde
bulunabilir, kullanıcıyla etkileşimli olarak çalışabilir.
JavaBean'i nedir?
Belli bir standarda göre yazılmış nesnedir. Örneğin xxx adlı bir veriyi değiştiren method setXxx(), erişim sağlayan method'da
getXxx() şeklinde yazıılır. Teknik olarak bir nesnenin bean olması default (parametresiz) bir constructor'u olması ve serializable
(dosyaya veya başka bir stream'a yazılıp oklunabilmesi) gerekir.
Servlet ve JSP nedir?
Sunucularda belli bir application server içerisinde çalışan programlardır. Tıpkı client'ta appletlerin çalışması gibi.Tipik olarak
servlet'lere HTTP üzerinden erişilir. Servlet'ler çıktı olarak HTML üretir. JSP ise, bir Java kodunun HTML kodu içerisinde gömülmesini
sağlayan yapıdır. JSP sayfası statik bir HTML sayfası gibidir sadece belli yerlerde Java kodu bulunur. (ASP ve PHP gibi.)
JavaScript'le Java'nın ne farkı var?
Java çok amaçlı, kullanım alanı oldukça geniş bir programlama dilidir. JavaScript ise web sayfaları veya benzeri markup
dilleriyle ilgili olarak form paramterelerinin girilmesi gibi sayfa içerisinde programlamaya benzer bazı işlemleri yapılabimesini
sağlayan script dilidir. Aralarında sintaks benzerliği bulunmaktadır. Ayrıca bazı ortamlarda birlikte çalışmaktadırlar. Şu anda iki dil
birbiriyle daha önce oldukları kadar ilişkili değildir.
J2EE (Java 2 Enterprise Edition) Nedir?
J2EE, Java'nın çok katmanlı kurumsal uygulama geliştirme standardıdır. J2EE, standart ve modüler bileşenlerden oluşan bir
yapının karmaşık işlemler yapmadan, otomatik olarak geliştirilebilmesini sağlar. Çok sayıda makine, sunucu, veritabanı ve
uygulamadan oluşan bir ortamın uyuölu çalışması için bir alt yapı oluşturur.
Sadece bir kaç kişilik bir ekibiyle geliştirilen basit uygulamalar, sadece bir veritabanı, bir sunucu ve az sayıda kullanıcıdan oluşan
ağlar için yapılan sistemler için J2EE çok anlamlı gelmeyebilir. Ancak çok sayıda veritabanı, çok sayıda makine, çok sayıda sunucu
birbirinden farklı yeteneklere ve gereksinmelere sahip çok sayıda kullanıcıdan oluşan büyük sistemler için uygulama geliştirmek
oldukça karmaşık bir hal almaktadır. Hatta sistemden beklenen şlevler ve kullanıcı sayısı büyüdükçe basit mimariler bile tek
makinenin tek sunucunun ve tek veritabanının kaldıramayacağı hale gelir. Bu durumlarda zorluk asıl işlevlerin
gerçekleştirilmesinden daha çok bir üşlevleri gerçekleştirilmesinide kullanılan bileşenlerin entegrasyonunda çıkmaktadır. Bu tip
ortamlarda 'dağıtık' uygulama geliştirme kavramı devreye girmektedir. Dağıtık sistemler, bütün sistemin ayrı makinelere, hatta ayrı
networklere dağıtıldığı, birbirileriyle iletişim kuran bileşenlerden oluşan sistemlerdir. J2EE, bu tip ortamlarda yapılacak işlemleri
kolaylaştırmakta, hatta bazı işlemleri otomatik olarak yapmaktadır.
J2EE Hangi Teknolojileri İçerir?
* Java API for XML-Based RPC (JAX-RPC) : Farklı makinelerdeki nesnelerin birbirleriyle XML konuşarak haberleşmesini sağlar
* JavaServer Pages & Java Servlets : Web programlama teknolojileri
www.dijitalders.com
Java Terimleri
3
Java Terimleri
* Enterprise JavaBeans components : Nesnelerin veritabanında saklanması, networkteki herhangi bir makineden erişilmesini
sağlar
* J2EE Connector Architecture : Başka tekonolojilerler geliştirimiş sistemleri J2EE ilei birlkte çalışmasını sağlar.
* J2EE Management Model : Network yönetim sistemleri ve protokolleriyle entegrasyon
* J2EE Deployment API : J2EE bileşenlerinin geliştirlmesi ve sisteme yüklenmesi
* Java API for XML Registries (JAXR) : Web servislerinin yaratılması, kurulması ve erişilmesi
* Java Message Service (JMS) : Uygulamaların ve nesnelerin eşzamansız (asenkron) iletişimi için.
* Java Naming and Directory Interface (JNDI) : Nesneleri belli bir isimler veya belli bir dizinde saklamak için
* Java Transaction API (JTA) : Transactional veri erişimi için.
* CORBA : Java Dışında C++ gibi diğer dillerin de nesneleriyle iletişim kurabilmek için
* JDBC data access API : SQL Veritabanlarına erişim için
* Java Mail : Mail sunucularına erişip mail alma/verme işleri için
* JavaBeans Activation Framework (JAF) : Belli bir veri tipinde çeşitli komutların çalıştırlması için
* J2SE : Java 2 Standart Edition : Standart Java'daki her şeyin enterprise da kullanılması için
EJB (Enterprise Java Beans) Nedir? Entity Bean, Session Bean, Message-Driven Bean Nedir?
Enterprise Bean, business logic'i (belli bir işlevin çalışma mantığını) sunucu tafında barındıran özel bir nesne türüdür. İşlev
sunucu tarfında tanımladığı için kullanıcı tarafındaki nesneler sadece enterprise bean'leri çağırırlar herhangi bir işlevi yapmak için.
J2EE sunucuları, enterprise bean'lerin dağıtık yapısını, güvenliği, ağdaki yeri saklanması gibi konuları hallederler. Programcıya
sadece bean'de neyin nasıl yapılacağını belirtmek kalır. J2EE'nin temel bileşeni EJB olarak düşünülebilir. Ancak EJB olmadan da
server side enterprise application'ları geliştrilevilir. Enterprise Bean'ler 3 Tiptir Entity Bean, Session Bean, Message-Driven Bean.
Entiy Bean, verinin saklanması ve erişilmesi için, Session Bean, belli bir sürede başlayıp biten süreçler için, Message-Driven Bean,
doğrudan çağrılarak çalıştırılmayan, belli bir mesaj alındığında yapılan işler için.
CMP (Container-Managed Persistence) & BMP (Bean-Managed Persistence)
J2EE'nin somut olarak işlevlerine örnek olarak CMP (Container Managed Persistent) verliebilir. CMP ile programcılar isterlerse
nesnelerini veritabanında otomatik olarak saklanmasını sağlayabilirler. Hiç SQL yazmadan sadece hangi alanların veritabanın
saklanacağını (persistent olduğunu) belitmeleri yeterli olur. (Elbette istenirse veritabanında saklama işini kendileri de hallede bilirler
ki buna da Bean )
J2EE ile EJB Fark Nedir?
J2EE bir standartlar bütünüdür. EJB bu standartlardan sadece biridir. EJB kullanmadan J2EE'nin diğer bileşenleri kullanılabilir.
Hata J2EE deki her şeyi kullanan, bir ket EJB kullanmayanlarda bulunmaktadır. EJB performans ve karmaşıklık nedeniyle kullanım
dışı bırakılabilmektedir. Ayrıca EJB, başka dille ve platformlarda benzeri olmayan bir kavram olduğu için, programcılar başka
ortamlarda alıştıkları gibi çalışmaya devam etme eğilimindedirler. Örneğin ASP ve PHP yapanlar, için 3-Tier uygulamala
geliştirdikleri için, JSP de aynı şekilde kullanılabilir. HTML-JSP-SQL şeklindeki standart kullanım J2EÊ'de de mümkündür, dahası
yaygındır.
J2EE ile XXX Server Arasındaki Fark Nedir?
J2EE standartlar bütünüdür. Belli bir ürün veya ürün grubu değildir. Piyasada bu standarda uyan bir çok ürün bulunmaktadır.
Sun (Java Server System) , IBM (WebSphere) , BEA (Web Logic), Oracle (8i,9i,..), Netscape gibi firmalar J2EE standardına uygun
sistemler üremektedirler. Ayırca JBoss ve Apache (Gerenimo) gibi organizasyonlar da free j2EE uygulamaları üretmektedirler.
Bunların bir kısmı Sun tarfından verilen J2EE Compatible ünvanını resmen almış olmaları gerekmektedir. Ancak bu J2EE
Compatibleünvanını almasa da J2EE uyumlu olan (veya olmaya çalışan) serverlar bulunabilir.
J2EE ile Xxx Server arasında bazı farklar bulunabilir. Herhangi bir application server J2EE standardında olmayan özellikler
içerebilir. O zaman J2EE uyumlu değildir denmez. Bu özellikler kullanılırsa standardın dışına çıkılmış olur, bir üründe çalışan kod
idğerinde çalışmayabilir. Ancak adı verilen ürünler J2EE'den bazı konularda çok daha zengin ve yeni özellikler içermektedirler.
Örneğin Struts, AspectJ gibi konular standartta yoktur ama bir çok application server'da bu özellikler bulunmaktadır.
EJB ile JDO Arasındaki Farklar Nedir ?
EJB bir nesnelerin saklanması, ağda erişilmesi, güvenliği gibi konularda servisler sağlar. JDO (Java Data Objects) ise sadece
nesnelerin saklanmasını sağlayan bir sistemdir. JDO'nun yaptığı Java Nesneleriyle veritabanı arasında aracılık yapmak. Veritabanın
SQL de olabilir, XML de olabilir, Object Database de olabilir. JDO, programcının veritabanı işleriyle uğraşmadan (örneğinm SQL
yazmadan) nesneleri saklamasına, erişmesine ve sorgulamasına olanak tanır. EJB de bunu işlevelri sağlayan bir standarttır. Ancak
EJB çok daha geniş imkanlar sunar. Güvenlik, dağıtık programlama, ölçeklenebilirlik v.s.
EJB ve JDO arasındaki karşılaştırmaya eklenebilecek ilginç bir notta, EJB'nin JDO kullanarak uygulanabilmesidir. Yani EJB
standardına uyan bir sistem, o standardı uygulama için arka planda JDO kullanabilir. EJB server üreticileri CMP için arkaplanda
JDO'yu kullanabildiği gibi, programcılar da BMP için JDO'yu kullanabilirler.
Kaynak www.godoro.com/Divisions/Ehil/Mahzen/Java/Faqs/txt/html/faq_Java.html
www.dijitalders.com
Java Terimleri
4
Download