Java ile Nesne-Merkezli Programlama. Bölüm Java'ya Giriş.pdfJava’nınKısaTarihi!...
Transcript of Java ile Nesne-Merkezli Programlama. Bölüm Java'ya Giriş.pdfJava’nınKısaTarihi!...
Akın Kaldıroğlu Java ile Nesne Merkezli Programlama
www.javaturk.org Şubat 2014 www.java
turk.org
Küçük Bir Konu Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eği=m malzemelerinin tüm
hakkı Akın Kaldıroğlu’na aiDr. Ø Bu eği=m malzemelerini kişisel bilgilenme ve gelişiminiz amacıyla
kullanabilirsiniz ve isteyenleri hHp://www.javaturk.org adresine yönlendirip, bu malzemelerin en güncel hallerini almalarını sağlayabilirsiniz.
Ø Yukarıda bahsedilen amaç dışında, bu malzemelerin, =cari olsun/olmasın herhangi bir şekilde, toplu bir eği=m faaliye=nde kullanılması, bu amaca yönelik olsun/olmasın basılması, dağıQlması, gerçek ya da sanal ortamlarda yayınlanması yasakQr. Böyle bir ih=yaç halinde lüRen benimle ile=şime geçin.
Ø Bu eği=m malzemelerine katkıda bulunmak ya da eleş=rilerinizi bana iletmek isterseniz çok sevinirim.
Ø Bol eğlenceli ve Java’lı günler dilerim.
Akın Kaldıroğlu [email protected]
2 www.javaturk.org
www.java
turk.org
Java’nın Kısa Tarihi Ø 1991 yılında Sun, kapalı kapılar ardında ve Patrick Naughton, Mike Sheridan ve James Gosling önderliğindeki küçük bir takımla bir proje başla\.
Ø 13 kişiden oluşan ve “Green Team” (Yeşil Takım) adı verilen bu grubun amacı ITC dünyasında geleceği tahmin edip ona yönelik AR-‐GE yapmakQ.
Ø Ve bu takım da geleceğin, kişisel ve ev elektronik cihazlarında olduğunu öngörüp bu alana yöneldi.
3 www.javaturk.org
www.java
turk.org
*7 Ø 18 aylık hummalı bir çalışmadan sonra 1992 yazında “*7”, “Star Seven” isimli ve dokunmalı ekrana sahip bir kontrol cihazı geliş=rdirler.
Ø Bu cihaz TV, video oynaQcısı ve müzik se= gibi pek çok ev cihazını kontrol edebiliyordu.
Ø Cihazın bu yeteneği, plaRormdan bağımsız bir dile sahip olmasından kaynaklanıyordu.
Ø James Gosling bu dile “Oak” adını vermiş=.
4 www.javaturk.org
www.java
turk.org
Java ve Internet Ø Bu proje pek çok kablolu TV şirke=ne teklif edildi ama zamanının ilerisinde olduğundan kabul görmedi.
Ø Ama takımın ileri gelenleri o sırada, geliş=rdikleri altyapının Internet’e çok uygun olduğunu farkeDler.
Ø Ve hemen yönlerini değiş=rip, ismi daha sonra resmi olarak HotJava olan Java-‐tabanlı bir tarayıcı geliş=rdiler: WebRunner
5 www.javaturk.org
www.java
turk.org
İç Giyim Olarak Oak Ø Gosling explains: "We had already been developing the kind of `underwear' to make content available at the same @me the Web was being developed. Even though the Web had been around for 20 years or so, with FTP and telnet, it was difficult to use. Then Mosaic came out in 1993 as an easy-‐to-‐use front end to the Web, and that revolu@onized people's percep@ons. The Internet was being transformed into exactly the network that we had been trying to convince the cable companies they ought to be building. All the stuff we had wanted to do, in generali@es, fit perfectly with the way applica@ons were wriTen, delivered, and used on the Internet. It was just an incredible accident. And it was patently obvious that the Internet and Java were a match made in heaven. So that's what we did."
6 www.javaturk.org
www.java
turk.org
Oak’tan Java’ya Ø Oak ismi bu sırada Java olarak değiş=rildi,
Ø Ve 23 Mayıs 1995’te Java resmi olarak piyasaya sunuldu.
Ø Ve o tarihlerde ne Java’yı geliş=renlerin ne de bir başkasının tahmin edemeyeceği yoğunlukta bir ilgiyle karşılaşQ.
Ø 2010 yılında Oracle’ın Sun’ı saQn almasıyla da Java el değiş=rmiş oldu.
7 www.javaturk.org
www.java
turk.org
Java Nedir? Ø Sun, 1995’te Java’yı sunarken yayınladığı ve “Java’nın babası” James Gosling’in kaleme aldığı bir yazıda Java’yı şöyle tanıQyordu:
Ø Java: Basit, nesne-‐merkezli, ağlarda yetenekli, yorumlanan, sağlam, güvenli, mimari olarak tarafsız, taşınabilir, yüksek performanslı/başarımlı, çok kanallı, dinamik bir dil.
Ø Java: A simple, object-‐oriented, network-‐savvy, interpreted, robust, secure, architecture neutral, portable, high-‐performance, mulHthreaded, dynamic language.
8 www.javaturk.org
www.java
turk.org
Java BasiDr I Ø Java’nın o kadar da basit değildir aslında,
Ø Java, ataları olan C ve C++ dillerinden daha basiDr.
Ø Çünkü bu dillerde olan ve karmaşıklık ge=ren özellikleri ve yapıları içermez: Ø Pointer aritme=ği, Ø Programcıya bağımlı bellek yöne=mi (memory management), Ø İşlemci çoklu kullanımı (operator overloading), Ø PlaRorm bağımlı yapılar.
Ø Java soyut dolayısıyla daha yüksek seviyeli bir dildir. 9 www.javaturk.org
www.java
turk.org
Java BasiDr II Ø Java bu dillere göre aşağıdaki avantajlara da sahip=r:
Ø Standartlar üzerine kurulmuş olmak, Ø PlaRorma bağlı olmayan yapılara (örneğin basit veri yapıları) sahip olmak,
Ø Daha derli-‐toplu geliş=rme ortamlarına sahip olmak, Ø Temel dil dışında da kurumsal ve gömülü uygulama yapılarına sahip olmak
Ø Daha küçük ve sade bir dil ile daha güçlü olmayı tercih eder, Ø Ama özellikle 5.0 sürümüyle başlayan eklemelerle Java bayağı büyüdü. Ø Örneğin generic yapıları
10 www.javaturk.org
www.java
turk.org
Java Nesne Merkezlidir I Ø Java nesne-‐merkezli bir dildir.
Ø Nesne-‐merkezli diller, daha çok aşina olunan prosedürel/yordamsal dillerden çok farklıdırlar.
Ø Yordamsal dillerde en önemli kavram/soyutlama yordam/prosedür/fonksiyondur ve bu yapılar, bir problemi alt problemlere bölüp, her birini adım adım (step-‐wise decomposi=on) tanımlamakta kullanılır.
Ø Fakat nesne-‐merkezli diller tamamen nesne kavramı üzerine otururlar.
11 www.javaturk.org
www.java
turk.org
Nesne Nedir? Ø Nesne, insan zihninin kendisine yöneldiği, özellik ve davranışlara sahip, fiziksel olan ya da olmayan herhangi bir olgudur.
Ø Yazılımda her =p nesne için, verisi ile davranışını bir paket haline ge=rip sarmalayan (encapsulaHon) ve adına genelde sınıf (class) denen şablonlar oluşturulur.
Sınıf = Veri + Davranış
Ø Nesneler, şablonlardan yani sınıflardan üre=lmiş çalışma zamanı yapılarıdır.
12 www.javaturk.org
www.java
turk.org
Nesne ve Varlıklar/Olgular Ø Nesnelerin çoğu zaman gerçek dünyadaki varlıkları ya da olguları ifade eDkleri düşünüldüğünde, nesnelerin özellikleri gerçek varlıkların/olguların özelliklerine, davranışları ise varlıkların/olguların birbirleriyle olan ile=şimine karşılık geldiği söylenebilir.
13 www.javaturk.org
www.java
turk.org
Alan Key’in 5 Kuralı Ø Herşey bir nesnedir.
Ø Program, birbirlerine mesaj (message) göndererek ne yapmalarını belirten nesnelerden oluşur.
Ø Her nesne diğer nesnelerden (associa=on/composi=on) oluşur ve hayzada yer kaplar.
Ø Her nesnenin bir =pi (type) vardır.
Ø Aynı =pten olan nesneler aynı mesajları alabilirler. 14 www.javaturk.org
www.java
turk.org
Java Nesne Merkezlidir II Ø Java’da basit veri =pleri hariç herşey, bütün =pler, bir nesnedir.
Ø Çok güçlü kapsülleme (encapsulaHon) ve bilgi saklama (informaHon hiding) mekanizmaları vardır.
Ø Arayüz (interface) ile gerçekleşHrme (implementaHon) arasında çok açık bir ayrım vardır.
15 www.javaturk.org
www.java
turk.org
Java Ağlarda Yeteneklidir Ø Tarihi olarak Java’nın ve Web devriminin doğumu aynı döneme rast gelmiş=r.
Ø Bu yüzden Java, ağ ve ilgili yapılar akılda tutularak tasarlanmış ilk dildir.
Ø Java ile bilgisayar için değil ağ için yazılım geliş=rirsiniz. Ø HTTP ve HTTPs gibi en yaygın Web protokolleri Ø Web Servisleri Ø Uzak nesneler (remote objects) Ø Ve Telnet, FTP vs. gibi diğer bütün protokoller
16 www.javaturk.org
www.java
turk.org
Java Yorumlanır Ø PlaRormdan bağımsız olabilmesi için Java kaynak kodları doğrudan makina koduna derlenmez, Ø Java kaynak kodları (.java dosyaları), Java bytecodeuna (.class dosyaları) derlenir.
Ø Bytecode, JVM’in komutlarıdır ve çalışma zamanında (run-‐=me) JVM tarayndan yorumlanır.
Ø JVM (Java Virtual Machine ya da Java Sanal Makinası), donanım ve işle=m sistemi üzerinde çalışan sanal bir plaRormdur.
17 www.javaturk.org
www.java
turk.org
Java Yorumlanır Ø Aslında Java hem derlenen (compiled) hem de yorumlanan (interpreted) bir dildir.
Ø Java kaynak kodları (.java dosyaları) Java bytecodelarına (.class dosyaları) derlenir.
Ø Bytecodelar çalışma zamanında (run-‐=me) JVM tarayndan yorumlanır.
Ø Dolayısıyla Java’da kod yazarken, nihai çalışma ortamını bilmeniz gerekmez. Ø Taşınabilir (portable)
18 www.javaturk.org
www.java
turk.org
19 www.javaturk.org
www.java
turk.org
Bytecode Nedir? Ø Bytecode, JVM’in makina dilidir,
Ø Bir byte uzunluğunda olduğu için böyle adlandırılmışQr.
Ø Bytecode, herhangi bir işlemciye özel değildir ya da bir başka deyişle tamamen ve sadece JVM’e özeldir,
Ø Bytecodelar, JVM tarayndan çalışma zamanında (run-‐=me) plaRorma özel komutlara çevrilir: Ø Yorumlama
Ø Bu şekilde Java’nın plaRormdan bağımsız ya da taşınabilir olması sağlanır.
20 www.javaturk.org
www.java
turk.org
JVM Ø JVM (Java Virtual Machine ya da Java Sanal Makinası), donanım ve işle=m sistemi üzerinde çalışan sanal bir plaRormdur.
Ø Hemen her plaRorm için en az bir JVM mevcuHur.
Ø Derlenmiş Java kodlarıyla plaRorm arasında bir katman oluşturur ve aynı bytecodeların farklı plaRormlarda değişmeden, aynı şekilde çalışmasını sağlar.
21 www.javaturk.org
www.java
turk.org
22 www.javaturk.org
www.java
turk.org
23 www.javaturk.org
www.java
turk.org
24
public class Selam{
public String selamSoyle(String isim){ return "Selam " + isim + " :)";
} }
public class SelamTest {
public static void main(String[] args) { Selam selam = new Selam(); String cevap = selam.selamSoyle("Ali"); System.out.println(cevap);
} }
www.javaturk.org
www.java
turk.org
Java Taşınabilirdir Ø Java tanımlı standartlar ve şartnameler (specificaHons) üzerine kurulmuştur. Ø Bu açıdan Java’da gerçekleş=rmeye (implementa=on) bağlı hiçbir noktanın olmaması amaçlanmışQr. Ø Örneğin int veri =pi her yerde 32 biDr.
Ø Ayrıca, Java dili ve JVM, plaRormlarla alakalı sadece en genel ön kabullere sahip=r.
Ø Bu durum Java’nın plaWorm bağımsızığı ve taşınabilirliğinin sağlayıcısıdır ve Java programcısına üzerinde çalışQğı ortamdan bağımsız davranma gücünü verir.
25 www.javaturk.org
www.java
turk.org
WORA Ø Başından bu yana bir kere yaz her yerde çalışPr (Write Once, Run Anywhere, WORA) Java’nın taşınabilirlik konusundaki hedefidir.
Ø Tabi olarak bu prensibin geçerli olması için programcı da herhangi bir plaRorma özel kod yazmamalıdır.
Ø Java’yı uzunca süredir uygulayanlar, bir kere yaz her yerde test et ☺ (Write Once, Test Anywhere, WOTA) prensibinin daha doğru olduğu üzerinde hemfikirdirler.
26 www.javaturk.org
www.java
turk.org
Java Sağlamdır Ø Sağlamlık (robustness) çalışma zamanı güvenirliği olarak tanımlanır.
Ø Java, dayanıklı (reliable) ve sağlam yazılımlar üretmek için tasarlanmışQr. Ø Java güçlü bir =p sistemine sahip=r dolayısıyla hem derleme zamanında hem de çalışma zamanında =p uyumu ve çevrimi (cast) kontrol edilir,
Ø Sıra dışı durumları ele almak için mekanizma oluşturulmuştur (excep=on handling),
Ø Bellek yöne=mi otoma=k=r, programcıya bırakılmamışQr. Ø Ve daha pek çok derleme/çalışma zamanı kontrollerini içerir.
27 www.javaturk.org
www.java
turk.org
Java Güvenlidir Ø Java’nın ağ ortamlarında kullanılmak için tasarlanmış olduğu belir=lmiş=.
Ø Bu yüzden Java, ağ ortamlarında bulunmanın ge=rdiği tehlikelere karşı koyacak şekilde yapılandırılmışQr.
Ø Yabancı makinlardaki nesnelerin, yerel makinadaki nesnelere ve işle=m sistemine erişimi kontrol alQndadır. Ø Java’nın ilk yıllarında duyulan güvenlik açıklarına arQk pek rastlanılmamaktadır.
Ø Java’daki güvenlik API’ları sayesinde şifrelemeden (encryp=on) sayısal imzalara (digital signatures) kadar her türlü güvenlik kodu yazılabilir.
28 www.javaturk.org
www.java
turk.org
Java Mimari Olarak Tarafsızdır Ø Java, birbirlerinden farklı, pek çok değişik plaRormun bulunduğu ağ üzerinde çalışmak için tasarlandığından, herhangi bir plaRormu varsaymaz, plaRormlardaki ortak özellikler dışında herhangi bir ön kabulü yoktur.
Ø Bu durum Java’nın sanal bir makina üzerinde çalışması ve hiçbir plaRorma varsaymayan bir şekilde, standartlar üzerine inşa edilmesinin bir sonucudur.
Ø Java bytecode da herhangi bir plaRorma bağımlı değildir.
29 www.javaturk.org
www.java
turk.org
Java Yüksek Başarımlıdır I Ø Bu özelliği tabiki açıklanmaya muhtaçQr. Ø Nesne-‐merkezli diller, =p hiyerarşileri ve polimorfizm gibi özelliklerinden dolayı zaten çalışma zamanında çok iş yaparlar. Ø Java, taşınabilir ve mimari olarak tarafsız olmak için sanal makina gibi bir ara katman üzerinde çalışmayı tercih etmiş=r,
Ø Ayrıca Java sağlam bir çalışma zamanı kurgulamak için çalışma zamanında daha pek çok kontroller sahip=r.
Ø Bu ve benzeri durumların Java’yı tabii olarak çalışma zamanında daha yavaş kılabilmektedir.
30 www.javaturk.org
www.java
turk.org
Java Yüksek Başarımlıdır II Ø Java’nın çalışma zamanı performansını ar\rmak için çok mesafe katedilmiş=r. Ø Etkin derleyici (Op=mizing compiler) Ø Etkin JIT ve benzeri teknolojiler
Ø Java’cılar da performanslı kod yazmak için hem hız hem de bellek tüke=mi açısından, diğer dilleri kullananlara göre daha bilgili olmalıdırlar.
31 www.javaturk.org
www.java
turk.org
Java Yüksek Başarımlıdır III Ø Ama unutulmamalıdır ki projeler daha çok ih=yaçların yanlış kavranması vs. gibi sebeplerden başarısız olmaktadır, performanstan değil.
Ø Ayrıca performans ve ölçeklenebilirlik (scalability) genel olarak mimarinin bir özelliğidir ve mimariler bu konulardaki hedefler gözönüne alınarak tasarlanmalıdır.
32 www.javaturk.org
www.java
turk.org
Java Çok Kanallıdır Ø Kanal (thread), bir işlem/süreç (process) içinde oluşturulan küçük bir işlem/süreç=r (lightweight process).
Ø Aynı işlem içinde çalışan farklı kontrol akışlarına kanal denir.
Ø Kanallar aynı işlem içinde çalışQklarından, birçok işi aynı anda ve daha hızlı ve etkin olarak yerine ge=rebilirler. Ø Böylece daha yetenekli ve hızlı cevap veren yazılımlar geliş=rilebilir.
Ø CPU ve plaRormların çok hızlı hale gelmesi, dillerdeki çok kanallı özellikleri kullanmamızı gerek=rmektedir.
33 www.javaturk.org
www.java
turk.org
Java Dinamik=r Ø .class dosyalarındaki Java =plerinin daha program derlenirken hazır olmaları şart değildir, =pler JVM’e çalışma zamanında her hangi bir anda yüklenebilir.
Ø Dolayısıyla pek çok dilde var olan derleme zamanındaki sta=k bağlanQ kurma (sta=c linking) genel olarak Java’da yoktur.
Ø Bu da ağ üzerinde çalışan ve derleme sırasında erişilmesi mümkün olmayıp, çalışma zamanında ulaşılan nesnelerin dinamik olarak JVM’e yüklenebilmesini sağlar.
34 www.javaturk.org
www.java
turk.org
Java’nın Sahibi Kimdir? Ø Excel’in sahibinin Microso| olması anlamında Java’nın sahibi yoktur.
Ø 2010 yılına kadar Java’nın orijinal geliş=ricisi olan Sun, Java’nın sahibi ve lisanslayıcısıydı.
Ø 2010 yılında Oracle Sun’ı saQn alarak, Java’nın sahibi ve lisanslayıcısı oldu.
35 www.javaturk.org
www.java
turk.org
Java’yi Kim Geliş=rmektedir? Ø Java, JCP (Java Community Process, hHp://www.jcp.org ) tarayndan geliş=rilmektedir. Ø JCP, kişi ve kuruluşların serbestçe kaQlabildiği ve kararların oy çoğunluğu ile verildiği milletlerarası bir ortamdır.
Ø Çok farklı bilgi ve tecrübeye sahip binlerce kişi ve kurum JCP çaQsın alQnda Java’nın gidişaQnı belirlerler.
Ø Her ne kadar Oracle (eskiden Sun), JCP’de çok etkin olsa ve bu yüzden eleş=rilse de Java’nın geleceği çok daha demokra=k yollarla belirlendiği söylenebilir.
36 www.javaturk.org
www.java
turk.org
JSR I Ø JCP’nin üyeleri yeni bir Java teknolojisini Java Specifica=on Request (JSR) mekanizması ile teklif edebilirler.
Ø Her JSR’ın bir yürütücü heye= ve teknik bir lideri vardır.
Ø JSR’lar, içinde halka açık incelemenin de (public review) bulunduğu bir dizi sa~adan geçip demokra=k bir oylama ile sonuçlandırılırlar.
37 www.javaturk.org
www.java
turk.org
JSR II Ø Kabul edilen her JSR aşağıdaki üç şeyi üretmek zorundadır:
Ø API’ı da içeren bir şartname (specifica=on) Ø Bir referans gerçekleme (reference implementa=on) Ø Teknoloji uyumluluk pake= (technology compa=bility kit)
Ø Dolayısıyla her Java teknolojisi gerçekleş=rmesi, bu açık ve üzerinde mutabakat oluşmuş tarifname ve API’lar üzerine bina edilirler.
Ø İsteyen her kişi ve kurum da bu tarifnameler üzerine ürün geliş=rip, bedava ya da ücre=yle lisanslayabilir.
38 www.javaturk.org
www.java
turk.org
Özgür Yazılım Ø Java’nın bu açık ve standartlara dayalı yapısı özgür yazılımların gelişmesine de yardımcı olmaktadır.
Ø Java bugün açık kaynak kodlu (open source) yazılım felsefesine gönül verenlerin en fazla kullandıkları dil haline gelmiş=r.
Ø Bu sayede hemen her Java teknolojisinin =cari olmayan, açık kaynak kodlu gerçekleş=rmesi mevcuHur.
39 www.javaturk.org
www.java
turk.org
Java’nın Tipleri Ø Sun, tek bir =pin yeterli olmayacağını düşünerek, Java’nın üç farklı =pini oluşturmuştur: Ø Standart Java (Standard Edi=on, SE) Ø Mikro Java (Micro Edi=on, ME) Ø Kurumsal Java (Enterprise Edi=on, EE)
Ø Şu anda Ø Java SE’nin 7. sürümü vardır, 8.si 2014’e planlanmışQr Ø Java EE’nin 7. sürümü May 2013’da çıkmışQr, Ø Java ME’nin 3.3 sürümü vardır.
Ø hHp://en.wikipedia.org/wiki/Java_version_history 40 www.javaturk.org
www.java
turk.org
Java Derken Neyi Kastediyoruz? Ø Java
Ø Bir programlama dilidir, Ø Bir geliş=rme ortamıdır, Ø Bir uygulama ortamıdır, Ø Bir kurulum ortamıdır.
Ø Bu anlamda Java, klasik programlama dillerinden farklı olarak, çok geniş ama yeknesak bir yazılım geliş=rme eko-‐sistemi sunar.
41 www.javaturk.org
www.java
turk.org
Java’ya Nasıl Başlarım? Ø Java’ya hHp://www.oracle.com/technetwork/java/index.html (eskiden hHp://java.sun.com ) adresine gidip JDK’in en son sürümünü indirip makinanıza kurarak başlayabilirsiniz.
Ø JDK’i kurduğunuz yerdeki bin klasörünü path’e koyup, komut saQrı (CMD, terminal, etc.) javac ile kodunuzu derleyip, java ile de çalışQrabilirsiniz.
Ø İsterseniz Netbeans (hHp://www.netbeans.org) ya da Eclipse (hHp://www.eclipse.org), IntelliJIDEA (hHp://www.jetbrains.com/idea/) gibi geliş=rme ortamlarını da kullanabilirsiniz.
42 www.javaturk.org
www.java
turk.org
Java’nın TabiaQ ve Zorlukları I Ø Java nesne-‐merkezlidir, dolayısıyla arQk prosedürel değil nesne merkezli düşünmeniz gereklidir.
Ø Java, sürükle-‐bırak merkezli programlama yaklaşımından ziyade, C/C++ geleneğine daha uygun olarak, ne yazdığınızı tam olarak bilmenizi ister.
Ø Java şartname (specifica@on) temellidir: Ø Dolayısıyla şartname ve onu gerçekleş=ren farklı ürünlerin olduğunu anlamanız gereklidir.
Ø Dolayısıyla aynı işi yapan, aynı API’ye sahip değişik ürünler vardır.
43 www.javaturk.org
www.java
turk.org
Java’nın TabiaQ ve Zorlukları II Ø Java, yazılım mimarilerine, tasarım şablonlarına (design paHerns) önem verir ve onları kullanır. Ø Java’da düşünmek ve modellemek yazmaktan daha önemlidir
Ø Küçük bir şey yapmak için bile hiç tahmin edemeyeceğiniz kadar düşünmeniz gerekebilir.
Ø Dolayısıyla hızlıca sürükle-‐bırak şeklinde geliş=rme yerine tasarımı üzerine düşünülmüş, sürekle-‐bırak kullanılsa bile arka planda ne olup biDği iyice bilinen geliş=rme modeli daha uygundur.
Ø Amaç, örneğin, 2000 saQrlık ASP ya da PHP sayfası yerine, çoğunlukla saQr saQr yazılmış ama çok daha modüler ve şablonlara uygun tasarlanmış 50-‐100 saQrlık JSP sayfaları yazmakQr.
Ø Java özgür ve açık kaynak kodlu yazılımların en yoğun olduğu dildir: Ø Dolayısıyla aynı işi yapan açık kaynak kodlu pek çok farklı ürün vardır.
44 www.javaturk.org
www.java
turk.org
Java Ser=fikaları I Ø Java’yı, sistemli bir şekilde, temellerinden başlayarak öğrenmenin bir yolu da Oracle’ın Java ser=fikalarını almakQr.
Ø Oracle’ın Java ser=fikaları, Java SE 5, 6 ve 7 ile Java EE 5, 6 ve 7 sürümleri ile Java ME üzerinedir.
Ø Ser=fikalar, tecrübeniz olmasa bile temel bilginizin sağlam olduğunu göstermenin en güzel yoludur. Ø OCP, Java Programmer olmak “tecrübem yok ama Java’nın temellerini iyi biliyorum” demek=r.
Ø Ser=fikalı olmak yurt dışı için çok önemlidir ve ülkemizde de giDkçe daha fazla önem kazanmaktadır.
45 www.javaturk.org
www.java
turk.org
Neden Ser=fika? Ø Ser=fika alan bir Java’cı, şu iki şeyi göstermiş olur:
Ø Kendi kariyeri ile ilgili bir hedefi vardır ve buna doğru ilerlemektedir,
Ø Tecrübesi olmasa bile gerekli bilgi donanımına sahip=r. Ø Dolayısıyla, özellikle yeni mezunlar ya da Java’da yeni bir yapıyı öğrenmek isteyenler için önemlidir.
Ø Bu anlamda ser=fika sahibi olmak saygın bir durumdur. Ø Oracle’ın Java ser=fikaları hakkında hHp://educa=on.oracle.com/pls/web_prod-‐plq-‐dad/ou_product_category.getFamilyPage?p_family_id=48 sayfasından geniş bilgi alabilirsiniz.
46 www.javaturk.org
www.java
turk.org
Java SE Ser=fikaları I Ø Java SE ser=fikaları, girişten başlayarak, Associate (OCA), Professional (OCP) ve Master (OCM) adlarında 3 seviye olarak yapılandırılmışQr:
47 www.javaturk.org
www.java
turk.org
Java SE Ser=fikaları II Ø OCA ve OCP, çoktan seçmeli sınavlardır.
Ø OCA, OCP için, OCP de OCM için zorunludur.
Ø OCA sınırlı ve giriş seviyede, OCP ise yerelleş=rme, çok kanallı programlama ve veri tabanı programlaması gibi konuları da içeren, dolayısyla Java SE bilgisini ölçmektedir.
Ø OCM ise bir proje ödevi ve bu ödevle ilgili yazılan bir makaleyi içermektedir.
48 www.javaturk.org
www.java
turk.org
Java EE Ser=fikaları Ø Java EE ser=fikaları temelde farklı Java EE teknolojilerine odaklanan ve onlardaki yetkinliği gösteren ser=fikalardır
Ø Java EE 5 için OCP, Java EE 6 için ise OCE (Oracle Cer=fied Expert)
49 www.javaturk.org
www.java
turk.org
Java Ser=fikaları III
50 www.javaturk.org
OCM, Java EE 5 Enterprise Architect OCM, Java EE 6 Enterprise Architect
OCP, Java EE 5 Web Component Developer
OCP, Java EE 5
Business Component Developer
OCP, Java EE 5 Web Services Developer
OCM, Java SE 6
Developer
OCP, Java PlaZorm, Enterprise EdiHon 6 Web
Component Developer
OCE, Java PlaZorm, Enterprise EdiHon 6 Enterprise JavaBeans Developer
OCE, Java PlaZorm, Enterprise EdiHon 6 Java
Persistence API
Developer
OCE, Java PlaZorm, Enterprise EdiHon 6 Web
Services Developer
OCP, Java ME 1 Mobile
ApplicaHon Developer
OCP Java SE 5/6/7
OCA Java SE 5/6/7
www.java
turk.org
Daha Fazla AyrınQ İçin Ø Oracle’ın Java SE Ser=fikaları: OCA, OCP ve OCM hHp://www.javaturk.org/?p=2375
Ø Oracle’ın Java EE 5 Ser=fikaları: OCP ve OCM hHp://www.javaturk.org/?p=2404
Ø Oracle’ın Java EE 6 Ser=fikaları: OCE ve OCM hHp://www.javaturk.org/?p=2431
51 www.javaturk.org
www.java
turk.org